[Github-comments] [geany/geany] Added Context Action Patterns. (#1643)

LarsGit223 notifications at xxxxx
Sat Oct 14 13:53:29 UTC 2017


It is now possible to use patterns to specify the context action command to be executed
if the user selects "Context Action" from the context menu. The patterns can be configured
in the filetypes configuration files.

Each action pattern entry needs to have a key of the form "context_action_pattern" followed by
a number from 1 to 99 (e.g. "context_action_pattern1", "context_action_pattern2"). The value
assigned must be a ';' separated string list with two entries. First, the pattern to match and
then the command to execute. So a complete entry looks like this:

context_action_pattern1=pattern;command;

Loading of the patterns stops after the 99th entry or if no more entries are found.
A gap in the entries numeration would lead to early abort of loading.

To find the corresponding action command for the current word/selection the following
procedure is performed:
1. Try to match the current selection/word against a pattern.
   If there is a match then the corresponding command is returned.
   Patterns are matched in the order in which they are specified in the filetype config file.
   The pattern matching uses the flag "G_REGEX_MATCH_ANCHORED" which means the pattern
   needs to match the word from the start. This is equal to using "^" at the start
   of the pattern.
2. If there is no match return the "context_action_cmd" for the filetype.
3. If that is empty use the context action from the global "Tools" preferences

Here is an example config for ```filetype.c``` to try out the feature:
```
# context action command (please see Geany's main documentation for details)
context_action_cmd=firefox --new-tab "http://www.cplusplus.com/search.do?q=%s"
context_action_pattern1=g_.*;firefox --new-tab "https://developer.gnome.org/symbols/search?q=%s";
context_action_pattern2=xml.*;firefox --new-tab "http://xmlsoft.org/search.php?query=%s";
```
This config will open/search the cplusplus website if there is no match in the patterns. If the current word/selection starts with ```g_``` then it searches the gnome API. If the current word/selection starts with ```xml``` then it searches the Libxml2 website.
You can view, comment on, or merge this pull request online at:

  https://github.com/geany/geany/pull/1643

-- Commit Summary --

  * Added Context Action Patterns.

-- File Changes --

    M src/callbacks.c (7)
    M src/filetypes.c (107)
    M src/filetypes.h (3)

-- Patch Links --

https://github.com/geany/geany/pull/1643.patch
https://github.com/geany/geany/pull/1643.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/1643
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/github-comments/attachments/20171014/305217be/attachment.html>


More information about the Github-comments mailing list