gtksourceviewmm 3.2.0
Public Member Functions | Static Public Member Functions | Related Functions
Gsv::LanguageManager Class Reference

Class which provides access to SourceLanguages. More...

#include <gtksourceviewmm/languagemanager.h>

Inheritance diagram for Gsv::LanguageManager:
Inheritance graph
[legend]

List of all members.

Public Member Functions

GtkSourceLanguageManager* gobj ()
 Provides access to the underlying C GObject.
const GtkSourceLanguageManager* gobj () const
 Provides access to the underlying C GObject.
GtkSourceLanguageManager* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
std::vector< std::stringget_search_path () const
 Gets the list directories where language manager looks for language files.
void set_search_path (const std::vector< std::string >& dirs)
 Sets the list of directories where the language manager looks for language files.
void reset_search_path ()
 Resets the list of directories where the language manager looks for language files to default.
std::vector< std::stringget_language_ids () const
 Returns the ids of the available languages.
Glib::RefPtr< Languageget_language (const std::string& id)
 Gets the Language identified by the given id in the language manager.
Glib::RefPtr< const Languageget_language (const std::string& id) const
 Gets the Language identified by the given id in the language manager.
Glib::RefPtr< Languageguess_language (const std::string& filename, const std::string& content_type)
 Picks a Language for given file name and content type, according to the information in lang files.
Glib::RefPtr< const Languageguess_language (const std::string& filename, const std::string& content_type) const
 Picks a Language for given file name and content type, according to the information in lang files.
Glib::PropertyProxy
< std::vector< std::string > > 
property_search_path ()
 List of directories where the language specification files (.lang) are located.
Glib::PropertyProxy_ReadOnly
< std::vector< std::string > > 
property_search_path () const
 List of directories where the language specification files (.lang) are located.
Glib::PropertyProxy_ReadOnly
< std::vector< std::string > > 
property_language_ids () const
 List of the ids of the available languages.

Static Public Member Functions

static Glib::RefPtr
< LanguageManager
create ()
 Creates a new language manager.
static Glib::RefPtr
< LanguageManager
get_default ()
 Returns the default LanguageManager instance.

Related Functions

(Note that these are not member functions.)

Glib::RefPtr
< Gsv::LanguageManager
wrap (GtkSourceLanguageManager* object, bool take_copy=false)
 A Glib::wrap() method for this object.

Detailed Description

Class which provides access to SourceLanguages.

LanguageManager is a class which processes language description files and creates and stores Language objects, and provides API to access them.

Use get_default() to retrieve the default instance of LanguageManager, and guess_language() to get a Language for given file name and content type.


Member Function Documentation

static Glib::RefPtr<LanguageManager> Gsv::LanguageManager::create ( ) [static]

Creates a new language manager.

If you do not need more than one language manager or a private language manager instance then use get_default() instead.

Returns:
A LanguageManager.
static Glib::RefPtr<LanguageManager> Gsv::LanguageManager::get_default ( ) [static]

Returns the default LanguageManager instance.

Returns:
A LanguageManager.
Glib::RefPtr<Language> Gsv::LanguageManager::get_language ( const std::string id)

Gets the Language identified by the given id in the language manager.

Parameters:
idA language id.
Returns:
A Language, or empty Glib::RefPtr if there is no language identified by the given id.
Glib::RefPtr<const Language> Gsv::LanguageManager::get_language ( const std::string id) const

Gets the Language identified by the given id in the language manager.

Parameters:
idA language id.
Returns:
A Language, or empty Glib::RefPtr if there is no language identified by the given id.
std::vector<std::string> Gsv::LanguageManager::get_language_ids ( ) const

Returns the ids of the available languages.

Returns:
An array of string containing the ids of the available languages.
std::vector<std::string> Gsv::LanguageManager::get_search_path ( ) const

Gets the list directories where language manager looks for language files.

Returns:
An array containg a list of language files directories.
Glib::RefPtr<const Language> Gsv::LanguageManager::guess_language ( const std::string filename,
const std::string content_type 
) const

Picks a Language for given file name and content type, according to the information in lang files.

Either filename or content_type may be an empty string. This function can be used as follows:

 Glib::RefPtr<LanguageManager> lm = LanguageManager::get_default();
 Glib::RefPtr<Language> lang;
 Glib::RefPtr<Buffer> buffer = Buffer::create();
 lang = lm->guess_language(filename, Glib::ustring());
 buffer->set_language(lang);
 // or just:
 // Glib::RefPtr<Buffer> buffer = Buffer::create(lang);

or

 Glib::RefPtr<Language> lang;
 Glib::RefPtr<LanguageManager> lm = LanguageManager::get_default();
 Glib::RefPtr<Buffer> buffer = Buffer::create();
 bool result_uncertain = FALSE;
 Glib::ustring content_type;

 content_type = Gio::content_type_guess(filename, 0, 0, &result_uncertain);
 if (result_uncertain)
 {
   content_type.clear();
 }

 lang = lm->guess_language(filename, content_type);
 buffer->set_language(lang);
 // or just:
 // Glib::RefPtr<Buffer> buffer = Buffer::create(lang);

etc. Use Language::get_mime_types() and Language::get_globs() if you need full control over file -> language mapping.

Parameters:
filenameA filename, or empty string.
content_typeA content type (as in GIO API), or empty string.
Returns:
A Language, or empty Glib::RefPtr if there is no suitable language for given filename and/or content_type.
Glib::RefPtr<Language> Gsv::LanguageManager::guess_language ( const std::string filename,
const std::string content_type 
)

Picks a Language for given file name and content type, according to the information in lang files.

Either filename or content_type may be an empty string. This function can be used as follows:

 Glib::RefPtr<Language> lang;
 lang = lm->guess_language(filename, Glib::ustring());
 buffer->set_language(lang);

or

 Glib::RefPtr<Language> lang;
 bool result_uncertain = FALSE;
 Glib::ustring content_type;

 content_type = Gio::content_type_guess(filename, 0, 0, &result_uncertain);
 if (result_uncertain)
 {
   content_type.clear();
 }

 lang = lm->guess_language(filename, content_type);
 buffer->set_language(lang);

etc. Use get_mime_types() and get_globs() if you need full control over file -> language mapping.

Parameters:
filenameA filename, or empty string.
content_typeA content type (as in GIO API), or empty string.
Returns:
A Language, or empty Glib::RefPtr if there is no suitable language for given filename and/or content_type.
Glib::PropertyProxy_ReadOnly< std::vector<std::string> > Gsv::LanguageManager::property_language_ids ( ) const

List of the ids of the available languages.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
Glib::PropertyProxy_ReadOnly< std::vector<std::string> > Gsv::LanguageManager::property_search_path ( ) const

List of directories where the language specification files (.lang) are located.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
Glib::PropertyProxy< std::vector<std::string> > Gsv::LanguageManager::property_search_path ( )

List of directories where the language specification files (.lang) are located.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
void Gsv::LanguageManager::reset_search_path ( )

Resets the list of directories where the language manager looks for language files to default.

Note:
At the moment this function can be called only before the language files are loaded for the first time. In practice to set a custom search path for a LanguageManager, you have to call this function right after creating it.
void Gsv::LanguageManager::set_search_path ( const std::vector< std::string > &  dirs)

Sets the list of directories where the language manager looks for language files.

Note:
At the moment this function can be called only before the language files are loaded for the first time. In practice to set a custom search path for a LanguageManager, you have to call this function right after creating it.
Parameters:
dirsAn empty string terminated array of strings.

Friends And Related Function Documentation

Glib::RefPtr< Gsv::LanguageManager > wrap ( GtkSourceLanguageManager *  object,
bool  take_copy = false 
) [related]

A Glib::wrap() method for this object.

Parameters:
objectThe C instance.
take_copyFalse if the result should take ownership of the C instance. True if it should take a new copy or ref.
Returns:
A C++ instance that wraps this C instance.