Table of Contents

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:

v0.3:

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:

v0.4:

v0.5:

v0.6:

v0.7:

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:

multi-clipboard-paste.lua

v0.2:

cleanup.lua

Surround selected text

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

Author: Carl Antuar

surround-selection.lua

v0.2:

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

Find project file extensions

Quickly identify all file extensions used in the current project. Useful for setting the list of recognised file types in a new project.

find-project-extensions.lua

Format document on save

This file is more a framework to write your own cli calls to format the current file upon save. There are a few hacks to get around the issue of a possible infinite loop (since the workflow is save → format document → save), but everything is heavily commented for your ease of use. Please note you will need to save this file under the reserved …/geanylua/events/saved.lua filename.

format-on-save.lua