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-2012 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.