This is an old revision of the document!


Lua Scripts

Cleanup MRU List

Detects files in the MRU listings which do not exist anymore by scanning the Geany configuration. Note you may not run it when Geany is running.

Author: Guenther Brunthaler

geany_cleanup_mru_list.lua

Geany Mktags

Solves the problem that “geany -g” can only create tag files for one language at a time, but there may be multiple source code languages present in a project. This script runs “geany -g” with the correct parameters to generate tag files for all supported languages for the source files encountered in the current directory tree.

Author: Guenther Brunthaler

geany_mktags.lua

Compare files

Compares the current file to any open file using an external tool (Meld, Kompare, KDiff, etc, falling back to plain diff). If the current file is unsaved, then a snapshot is saved to a temporary file, so it is possible to compare unsaved changes to other files (or even compare to the saved version of the file).

The intent of this script is to provide a replacement for the Notepad++ Compare plugin.

Author: Carl Antuar

compare.lua

v0.2:

  • Changed to use io.popen to retrieve command output, instead of piping to temporary file.

Hex edit

Allows hex editing of binary files. This creates a 'shadow' file containing the hexadecimal representation of the file, and synchronises with the original when the shadow is saved.

The intent of this script is to provide a replacement for the Notepad++ Hex Editor plugin.

Author: Carl Antuar

hexedit.lua events/saved.lua

Snap open

Quickly open files in the current project by typing all or part of the filename.

Author: Carl Antuar

s_nap-open.lua

Review SVN changes

Review the changes made in SVN revisions. This is intended as a companion to the GeanyVC plugin.

Author: Carl Antuar

s_vn-changes.lua

v0.3:

  • Include commit comments when choosing revision;
  • Add 'quick scan' option for choosing only the most recent commits;
  • Add support for graphical diff viewers.

v0.4:

  • Replace 'quick scan' and 'full scan' with progressive disclosure of scan results;
  • Add 'all changes since revision' option.

v0.5:

  • Consolidate choices into custom preferences dialog.

Multi-clipboard support

Use multiple clipboards for copying and pasting text.

Suggested usage is to add both scripts to hotkeys.cfg, then attach the 'copy' script to Ctrl+c (because the script also copies to the regular clipboard) and the 'paste' script to Ctrl+Shift+V.

Author: Carl Antuar

multi-clipboard-copy.lua

v0.2:

  • Fixed filename matching to handle dots in filename properly.

multi-clipboard-paste.lua

v0.2:

  • Sorted clipboards by modification date (newest first);
  • Fixed retrieval of line breaks from clipboard files;
  • Add pasted text to regular clipboard to make multiple pastes easier.

cleanup.lua

Surround selected text

Surround the selected text with brackets, braces, XML tags, etc.

Author: Carl Antuar

surround-selection.lua

v0.2:

  • Add double quotes to list of surrounds.

Delete duplicate lines

Delete duplicate lines from the current file.

Author: Carl Antuar

delete-_duplicate-lines.lua

Vim keybindings

Provides a subset of Vim keybindings.

Author: Carl Antuar

vim-keybindings.lua

Alternative word navigation

Geany treats all punctuation as whitespace, with the result that punctuation surrounded by whitespace is totally skipped. Often, this is too greedy. These scripts provide Vim-style word navigation instead. The idea is to bind them to the appropriate keys (Ctrl+right etc), by adding the filenames to hotkeys.cfg and then setting them via the usual Geany preferences dialog.

Author: Carl Antuar

ctrl-right.lua ctrl-shift-right.lua ctrl-left.lua ctrl-shift-left.lua

Print/export