NAME
Padre::Config - Configuration subsystem for Padre
SYNOPSIS
use Padre::Config;
[...]
if ( Padre::Config->main_statusbar ) { [...] }
DESCRIPTION
This module not only stores the complete Padre configuration, it also holds the functions for loading and saving the configuration.
The Padre configuration lives in two places:
- a user-editable text file usually called config.yml
- an SQLite database which shouldn't be edited by the user
Generic usage
Every setting is accessed by a mutator named after it, i.e. it can be used both as a getter and a setter depending on the number of arguments passed to it.
Different types of settings
Padre needs to store different settings. Those preferences are stored in different places depending on their impact. But Padre::Config
allows to access them with a unified API (a mutator). Only their declaration differs in the module.
Here are the various types of settings that Padre::Config
can manage:
User settings
Those settings are general settings that relates to user preferences. They range from general user interface look & feel (whether to show the line numbers, etc.) to editor preferences (tab width, etc.) and other personal settings.
Those settings are stored in a YAML file, and accessed with
Padre::Config::Human
.Host settings
Those preferences are related to the host on which Padre is run. The principal example of those settings are window appearance.
Those settings are stored in a DB file, and accessed with
Padre::Config::Host
.Project settings
Those preferences are related to the project of the file you are currently editing. Examples of those settings are whether to use tabs or spaces, etc.
Those settings are accessed with
Padre::Config::Project
.
ADDING CONFIGURATION OPTIONS
Add a "setting()" - call to the correct section of this file.
The setting() call initially creates the option and defines some metadata like the type of the option, it's living place and the default value which should be used until the user configures a own value.
COPYRIGHT & LICENSE
Copyright 2008-2009 The Padre development team as listed in Padre.pm.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself.