Gsv::LanguageManager Class Reference

Class which provides access to SourceLanguages. More...

`#include <gtksourceviewmm/languagemanager.h>`

Inheritance diagram for Gsv::LanguageManager:
[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::string > | get_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::string > | get_language_ids () const
| Returns the ids of the available languages.
Glib::RefPtr< Language > | get_language (const std::string& id)
| Gets the Language identified by the given id in the language manager.
Glib::RefPtr< const Language > | get_language (const std::string& id) const
| Gets the Language identified by the given id in the language manager.
Glib::RefPtr< Language > | 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.
Glib::RefPtr< const Language > | 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.
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:

  id | A 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:

  id | A 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:

  filename | A filename, or empty string.
  content_type | A 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:

  filename | A filename, or empty string.
  content_type | A 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:

  dirs | An 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:

  object | The C instance.
  take_copy | False 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.