Top | ![]() |
![]() |
![]() |
![]() |
The IdeSourceSnippetsManager is responsible for locating and parsing snippets that are bundled with Builder and user defined snippets.
The snippets manager will search various paths and resources for snippets when loading. Snippets are collected per-language so that the editor will only see relevant snippets for the given language.
The snippet language is similar to other snippet engines, but with some additional features to make it easier to write snippets for multiple languages at once.
Files containing snippets should have a filename suffix of ".snippets".
The following makes a snippet called "class" for Python2 and Python3 which allows you to tab through edit points. The "$0" contains the final position of the snippet.
Each line of the snippet should start with a Tab. When expanding the snippet, tabs will be converted to spaces if the users language settings specify that spaces should be used.
1 2 3 4 5 |
snippet class - scope python, python3 - desc Create a Python class class ${1:MyClass}(${2:object}): $0 |
The default class name would be "MyClass" and inherit from "object". Upon expanding the snippet, "MyClass" will be focused and "object" will focus once the user hits Tab. A second Tab will exhaust the edit points and therefore place the insertion cursor at "$0".
You may reference other edit points as which can help in complex scenarios. In the following example, there will be a single edit point, repeated three times.
1 2 3 4 |
snippet test - scope c - desc An example snippet ${1:test} $1 $1 $1 $0 |
You may also reference other edit points in the default value for an edit point. This allows you to set a value by default, but allow the user to Tab into that position and modify it.
1 2 3 4 |
snippet test - scope c - desc An example snippet ${1:foo} ${2:`$1`} |
If you want to add additional data to the edit point, you can use multiple backticks to include additional text.
1 2 3 4 |
snippet test - scope c - desc An example snippet ${1:foo} ${2:`$1`_with_`$1`} |
You can post-process the output text for an edit point by specifying a pipe "|" and then a post-processing function.
Currently, the following post-processing functions are supported.
capitalize: make the input into "Captital Text"
decapitalize: make the input into "decaptital text"
html: replaces input "<>" into < and >
functify: converts input into something that looks like a c_function_name
namespace: guesses a proper code namespace from the input text
upper: converts to uppercase
lower: converts to lowercase
space: converts the input text into whitespace of the same length
camelize: converts the input text into CamelCase
stripsuffix: removes a filename suffix, such as ".txt" from the input
class: guess the class name from the input text
instance: guess the instance name from the input text
You may chain multiple post-processing functions together.
1 2 |
snippet test ${1:some-file} ${2:$1|functify|upper} |
void ide_source_snippets_manager_load_async (IdeSourceSnippetsManager *self
,GCancellable *cancellable
,GAsyncReadyCallback callback
,gpointer user_data
);
Asynchronously locates and parses snippet definitions.
Call ide_source_snippets_manager_load_finish()
to get the result
of this asynchronous operation.
self |
||
cancellable |
a GCancellable or |
[nullable] |
callback |
A GAsyncReadyCallback or |
[nullable] |
user_data |
closure data for |
Since: 3.18
gboolean ide_source_snippets_manager_load_finish (IdeSourceSnippetsManager *self
,GAsyncResult *result
,GError **error
);
Completes an asynchronous call to ide_source_snippets_manager_load_async()
.
self |
||
result |
a GAsyncResult provided to the async callback |
|
error |
a location for a GError or |
Since: 3.18
IdeSourceSnippets * ide_source_snippets_manager_get_for_language (IdeSourceSnippetsManager *self
,GtkSourceLanguage *language
);
Gets the snippets for a given source language.
Since: 3.18
IdeSourceSnippets * ide_source_snippets_manager_get_for_language_id (IdeSourceSnippetsManager *self
,const gchar *language_id
);
Gets the snippets for a given source language.
Since: 3.18