Geany Changelog

What's new in Geany 2.0

Oct 20, 2023
  • General:
  • Split "session data" into session.conf, preferences are written to and read from geany.conf (PR#2776, PR#2779, PR#3014, PR#3125 and more).
  • Add new build system Meson (experimental) (PR#2761).
  • Require GTK 3.24 (#3580).
  • Bug fixes:
  • (Re-)Add ability to scroll over document tabs (Luke Horwell, PR#3134).
  • Fix keyword colorization on filetype change (PR#3553).
  • Fix startup files order when placing tabs next to the current one (PR#3611).
  • Interface:
  • The document list in the sidebar has a new tree view. This mode is the new default and existing installations automatically use it (PR#1813).
  • Use dark-theme friendly colors for compiler messages (PR#3013).
  • Add a confirmation dialog on search & replace for the whole session (PR#3033).
  • Filter entry for symbol tree (PR#3055).
  • Simplify project creation from existing directories with sources (PR#3042).
  • Add option to show symbols in symbol tree without category groups (PR#3172).
  • Add option to only show line endings if they differ from file default (PR#3287).
  • Make tab label length and window title length configurable (Abdul Rafey, #3365).
  • Make Go to Symbol commands show signature list (PR#3475).
  • Editor:
  • Update Scintilla to 5.3.7 and Lexilla to 5.2.7 (PR#2867, PR#3551).
  • Add "Change history" feature (disabled by default) (PR#3551).
  • Filetypes:
  • Sync many parsers from the Universal Ctags project, this leads to updated symbol parsers (PR#2990, PR#2991, PR#3032).
  • Improved support for the ctags file format, which is now the recommended format for tags files (PR#3049).
  • Update Kotlin filetype config (PR#3456).
  • Apply Markdown header style to the complete header (Robert Di Pardo, PR#3602).
  • Update Nim filetype config (Zoom, PR#2988).
  • Update PHP filetype config (PR#3488).
  • Update Python filetype config (PR#3039).
  • Add AutoIt filetype (Skif-off, PR#1752).
  • Add GDScript filetype (David Yang, PR#3012).
  • Remove Ferite filetype (PR#3075).
  • Enable local variables and improve autocompletion for C/C++ and some other languages (PR#3185, PR#3275).
  • Windows:
  • Remove native file and color dialogs on Windows, GTK dialogs will be used instead (#3219).
  • Use "Prof-Gnome" GTK theme by default (same theme as used on macOS) for a better experience, the "Adwaita" theme can still be activated (PR#3129).
  • Internationalization:
  • Updated translations: cz, da, de, fr, es, kk, lv, it, nl, pt, sk, ru, ua
  • Added translations: si

New in Geany 1.38 (Oct 11, 2021)

  • General:
  • Increase speed when opening documents, especially on startup (Justin Blanchard, Issue#2883, Issue#2649, Issue#2791, PR#2884, PR#2747).
  • Synchronize Geany's Ctags implementation with Universal Ctags, this leads to updated symbol parsers (Jiří Techet, PR#2666).
  • Remove GTK+2 Support (PR#2602).
  • Geany needs a C++17 compiler to build (PR#2862).
  • Bug fixes:
  • Workaround crashes when pasting into VTE without having focus
  • (Issue#2813, PR#2843).
  • Interface:
  • Add keybinding to reload all open documents (David Yang, PR#2859).
  • Filetypes:
  • Add Julia filetype (getzze, Issue#434, PR#2584).
  • Add Meson filetype (Andy Alt, PR#2850).
  • Plugins:
  • SaveActions: add configurable target directory for instantly saved files
  • (Issue#640, PR#2769).
  • Windows:
  • Fix message window height after restart (Issue#2591, PR#2892).
  • Switch Windows builds to GTK3 and x86_64 (PR#2590).
  • Internationalization:
  • Updated translations: da, de, el, es, et, fr, it, ja, nl pt, pt BR, sk, tr, uk, zh_CN

New in Geany 1.37 (Oct 26, 2020)

  • General:
  • Build with GTK3 by default.
  • Add an option (enabled by default) to save main and project configuration whenever documents are opened/closed to reduce accidental loss of current session in the event of a crash.
  • List Geany in the category TextEditor (Dominic Hopf, Issue#2460).
  • Bug Fixes:
  • Fix main window name as seen by accessibility tools (Issue#2421).
  • Add missing include (Pino Toscano, PR#2402).
  • Fix a possible crash when quitting (Hodong & Guido Falsi, Issue#2457, PR#2634).
  • Interface:
  • Allow to cancel Open Project and New Project dialogs without closing the current project.
  • Don't ask whether to close current project when opening a recent project.
  • Disable some items when they are not available.
  • Provide a CSS name for most widgets (PR#2469).
  • Adapt margins width to font size and zoom (Issue#1733, PR#1738).
  • Show OS info in debug messages.
  • Persist color picker palette (Issue#2595).
  • Fix color of selected text in search entries with no match (foresto, Issue#2332, PR#2333)
  • Editor:
  • Update Scintilla to version 3.21.1 (PR#2506).
  • Filetypes:
  • Add BibTeX filetype (Mirco Schoenfeld, PR#2212).
  • Update JavaScript keywords (dmitryunruh, PR#2486).
  • Update Lua block comment end (Filip Szymański, PR#2566).
  • Update FreeBasic keywords (Issue#2583).
  • Add Smalltalk filetype (Snowflake the Pony, PR#2399).
  • Add a configuration option to select the default Python command.
  • Documentation:
  • Improve Build-related settings documentation.
  • Added documentation for the Color Chooser (LarsGit223).
  • Windows:
  • Bundle the GLib GSpawn helper binaries with the installer for plugin that use the related GLib API.
  • Make IPC port number configurable, and move the default outside the dynamic range used by Hyper-V (Issue#2101, PR#2585).
  • Use the py launcher for Python filetype (Issue#2211).
  • Support programming ligatures (like Fira Code font) (Issue#2535).
  • Internationalization:
  • New translations: ie
  • Updated translations: da, de, el, es, fr, id, it, ja, lv, nl, pl, pt, ru, sk, sv, zh_CN

New in Geany 1.36 (Sep 30, 2019)

  • General:
  • Give precedence to user-defined filetype extension mappings over default ones (PR#2166).
  • Give precedence to the longest matching filetype pattern (Issue#1499, Issue#1921, PR#2167).
  • Place the socket file in $XDG_RUNTIME_DIR when available (Thomas Martitz, PR#2222).
  • Bug fixes:
  • Improve path ellipsising in Go To Tag filetype popup (Thomas Martitz, PR#2262).
  • Interface:
  • Show group prefix for the Various preferences (PR#2176).
  • Show the GTK/GLib versions in about dialog (PR#2163).
  • Editor:
  • Update Scintilla to version 3.10.4 (PR#2138).
  • Add support for fractional font sizes (Pedro Henrique Antunes de Oliveira, Issue#703, PR#2250).
  • Filetypes:
  • Add Apple Swift filetype (Ankit Pati, PR#1323).
  • Add Nim filetype (Simon Krauter, Issue#1772, PR#2085).
  • Update NSIS keywords (PR#2181).
  • Update error matching for the CUDA filetype (Rajesh Pandian M, Issue#2213, PR#2218).
  • Add Kotlin custom filetype (Issue#1581, PR#2186).
  • Add Groovy custom filetype (PR#2188).
  • Add TypeScript custom filetype (Issue#1449, PR#2187).
  • Small update of Django keywords (PR#2315).
  • Don't suggest to override all settings through Tools->Configuration Files (Issue#1552, PR#2168).
  • Windows:
  • Migrate the installer to NSIS 3 (Issue#1302, PR#2181).
  • Fix build on recent MSYS2 (Issue#2261, PR#2263).
  • Internationalization:
  • New translations: ku
  • Updated translations: da, de, es, fr, it, ja, lv, pt, sk, sv, zh_CN

New in Geany 1.35 (Apr 30, 2019)

  • General:
  • Start synchronization with Universal-CTags (Jiří Techet, PR#1263, PR#2018).
  • Bug fixes:
  • Improve IPC socket handling (Issue#641, PR#2111).
  • Fix loading the default open encoding option (PR#1326).
  • Fix VTE path following after reset (Issue#352, PR#2116).
  • Interface:
  • Show variable type in a tooltip in symbol tree (Jiří Techet, PR#2036).
  • Editor:
  • Update Scintilla to version 3.10.2 (Issue#971, Issue#1947, Issue#2076, PR#2045).
  • Drastically speed up huge bulk replacements (Issue#2092, PR#2097).
  • Fix accessibility information reported upon deletion.
  • Fix garbage data insertion when moving lines up or down (Issue#2066).
  • Don't perform line breaking in rectangular selection mode (Issue#2051, PR#2135).
  • File types:
  • Allow stripping trailing spaces from custom filetypes based on the Diff lexer (Cristian Ciocaltea, Issue#2041, PR#2043).
  • Improve JavaScript symbols parsing (Issue#1329, Issue#1891, Issue#1933, part of PR#2018).
  • Improve HTML symbols parsing (part of PR#2018).
  • Improve COBOL symbols parsing (PR#2128).
  • Improve ActionScript symbols parsing (PR#2134).
  • Internationalization:
  • Updated translations: da, de, es, fr, ja, lv, pt, ru, sk, zh_CN

New in Geany 1.34.1 (Jan 14, 2019)

  • Bug fixes:
  • Fix line breaking on existing lines (PR#2027).
  • Fix displaying filenames containing XML control characters inside infobars (Issue#2033).
  • Internationalization:
  • Updated translations: uk

New in Geany 1.34 (Jan 3, 2019)

  • General:
  • Auto-select GTK2 or GTK3 at build time depending on availability (PR#1182).
  • Process files in the order they appear on the command line when generating tags files (Issue#1989, PR#1991).
  • Bug fixes:
  • Fix high CPU usage with the Scope plugin (Dimitar Zhekov, Issue#1461).
  • Fix loading some tags files with format specifier (Issue#1814, PR#1817).
  • Fix Plugin Manager buttons sometimes getting out of sync, possibly leading to a crash (Issue#1781, PR#1799).
  • Fix horizontal and page scrolling under GTK3 (PR#1843).
  • Interface:
  • Show part of the file path to show unique elements in the go to symbol popup (Thomas Martitz, PR#1445, Issue#1069).
  • Always show icons in the go to symbol popup (PR#1997).
  • Add a keybinding for "Strip Trailing Spaces" (LarsGit223, Issue#395,
  • PR#1806).
  • Add some missing label relations.
  • Editor:
  • Update Scintilla to version 3.10.0 (Issue#1421, PR#1914).
  • Fix line breaking with multi-byte characters (Issue#1958, PR#1960).
  • Don't beep when trying to go to the next cursor location in a snippet and there is none (see Issue#1554).
  • Filetypes:
  • Markdown: Display bold and italics as such (FMuro, PR#1837).
  • Python: Update keywords to Python 3.7 (Miro Hrončok, Issue#1351, PR#1894).
  • PHP: Update tags for PHP 7.2 (Dominic Hopf, PR#1970).
  • Batch: Use REM as single-line comment marker (Issue#1912, PR#1932).
  • VHDL: Classify string styles as such (PR#1402).
  • API:
  • Add msgwin_compiler_add_string(), msgwin_msg_add_string(), msgwin_status_add_string() (Thomas Martitz, PR#1748).
  • Add GeanyObject::key-press signal allowing plugins to intercept key presses before Geany (Jiří Techet, PR#1829).
  • Add utils_strv_shorten_file_list() (Thomas Martitz, PR#1445).
  • Fix value of GeanyDocument::changed when quitting (Jason Cumbie, PR#1857).
  • Internationalization:
  • Add translation: da
  • Updated translations: de, es, fr, hu, it, ja, pt, sv, sk, uk, ru, zh_CN, zh_TW

New in Geany 1.33 (Jan 3, 2019)

  • Bug fixes:
  • Fix the symbols tree hierarchy when several tags have the same name
  • (PR#1598).
  • Interface:
  • Add a tooltip showing the full path on menu items representing documents
  • (PR#1706).
  • Add a note for applying the indent settings in the project preferences
  • (PR#1650).
  • Enable popup menu on sidebar and message window notebooks (PR#1726).
  • Show status message on attempt to execute empty context action
  • (Lars Paulsen, PR#1642).
  • GTK3 theming improvements and documentation (PR#1382).
  • Filetypes:
  • CSS: Update Grid properties (Issue#1705).
  • Internationalization:
  • Updated translations: de, el, es, fr, it, lv, pl, pt, tr, ru, zh_CN

New in Geany 1.32 (Nov 20, 2017)

  • General:
  • Improve CLI argument help (PR#1644).
  • Keep the current tab when closing documents to the right of another tab.
  • Re-enable SIGTERM handling (PR#1255).
  • Create correct path for filetype config files (Jiří Techet, PR#1482).
  • Add an option to enable IME's candidate window display inline
  • (Sinpo Wei, PR#1514).
  • Add an option to automatically reload files changed on disk
  • (Mark O'Donovan, PR#1246).
  • Bug fixes:
  • Fix backward compatibility of the geometry saving setting.
  • Close "Deleted from Disk" Infobar on Reload (Lars Paulsen, PR#1628).
  • Make sure GDK_MOD2_MASK is cleared when getting modifiers
  • (Jiří Techet, PR#1636).
  • Use non-symlinked VTE libraries on MacOS X (Jiří Techet, PR#1625).
  • Fix crash if plugin manager is opened more than once (PR#1564).
  • Fix incorrect variable reference (Thomas Martitz, PR#1561).
  • Interface:
  • Add "Close Documents to the Right" feature (PR#1362).
  • Add an option to save/reload either window position or size,
  • but optionally not both (delt01, PR#1456).
  • Editor:
  • Update Scintilla to version 3.7.5 (PR#1503).
  • Improve snippet support (visual indicators and more)
  • (Thomas Martitz, PR#1470).
  • Push current position to navqueue before navigating back
  • (Vasiliy Faronov, PR#1537).
  • Filetypes:
  • Add GNU assembler filetype extensions (Issue#904).
  • Make Python comment hash space (PR#1682).
  • Add missing string and comment styles for various lexers (PR#1502).
  • Add missing PHP keywords, especially for PHP 7.x (1547, PR#1547).
  • Python: Don't highlight sub-identifiers as keywords (PR#1544).
  • Plugins:
  • FileBrowser: don't change directory on project save
  • (Jiří Techet, PR#1400).
  • API:
  • Add utils_get_real_path() and deprecate tm_get_real_path() (PR#1224).
  • Add geany_plugin_get_data() (PR#1234).
  • Add keybindings_load_keyfile() (Jiří Techet, PR#1430).
  • Add tm_tag_get_type() (Thomas Martitz, PR#1465).
  • HACKING:
  • Add note about data types and update for best practices (PR#1282).
  • Internationalization:
  • Updated translations: ca, de, el, es, fr, it, lt, lv, nl, pt, ru,
  • sk, sv, zh_CN

New in Geany 1.30.1 (Mar 20, 2017)

  • Editor:
  • Fix auto-completion and calltip popup position on multi-monitor setups (Issue#1422).
  • Internationalization:
  • Updated translations: ca, de, el, es, sk.

New in Geany 1.30 (Mar 6, 2017)

  • General:
  • Initial accessibility support in the editor (SF#328).
  • Fix scrolling on Wayland (Issue#1320).
  • Bug fixes:
  • Fix Ctrl+X and Ctrl+C in non-Latin keyboard layouts
  • (Forkest, PR#1386).
  • Fix search history filling on GTK >= 3.20 (PR#1404).
  • Simplify setting build menu items labels, fixing a Commander plugin
  • issue (Vasiliy Faronov, PR#1396).
  • Interface:
  • Fix the current scope shown in the statusbar (Issue#1279).
  • Editor:
  • Update Scintilla to version 3.7.3.
  • Fix triggering default keybindings together with snippets keybindings
  • (Issue#1354, PR#1356).
  • Filetypes:
  • Update JavaScript keywords (Abel 'Akronix' Serrano Juste, PR#1361).
  • Partial highlighting of JavaScript ES6 template strings (Issue#934).
  • Add Arduino custom filetype (Issue#1339).
  • Internationalization:
  • Updated translations: de, es, fr, it, lt, pt
  • API:
  • Remove unprefixed Scintilla structure aliases. Plugins must use
  • the Sci_-prefixed version from now on.
  • Add geany_api_version() to detect the API version of Geany at
  • runtime (Thomas Martitz, PR#1406).
  • OSX:
  • Fix slow startup (Jiří Techet, Issue#1277, PR#1399).

New in Geany 1.29 (Nov 14, 2016)

  • General:
  • Fix search entries color with the default GNOME 3.20 GTK2 theme (PR#1137, Issue#1101, Issue#1135, Issue#1267).
  • Improve support for GTK 3.22.
  • Add support for VTE 0.38 and newer (Issue#336, PR#1181).
  • Bug fixes:
  • Fix build when the CXX variable contains flags (PR#1155, Issue#829).
  • Fix focusing the message window when the Terminal tab is active (PR#1200, Issue#1198).
  • Editor:
  • Update Scintilla to version 3.7.0 (Issue#1143).
  • Add support for keeping the cursor a number of lines from the edges to always show some context (PR#1154, Issue#1152).
  • Allow to configure keybinding for "Delete to beginning of line" (Abel Serrano Juste, PR#1134).
  • Performance improvements with many duplicate symbols (Jiří Techet, PR#797, Issue#577).
  • Allow to configure the error indicator color (PR#1185).
  • Filetypes:
  • Fix highlighting of Haxe preprocessor (Issue#936).
  • Add .exp extension to TCL (Simon Marchi, PR#979).
  • Internationalization:
  • Updated translations: ca, de, el, es, fr, id, it, kk, nl pt, pt_BR, sv, zh_CN,
  • API:
  • Update GeanyProxyProbeResults API (PR#1213).
  • Warn if a dot is used at the start of a proxy extension (PR#1212, PR#1233).
  • Add support for custom data attached to documents through plugin_set_document_data(), plugin_get_document_data() and plugin_set_document_data_full() (PR#1203).
  • Add "project-before-close" signal (PR#1223).
  • Plugins:
  • Split Window: Work around a GTK bug present from 3.15.9 to 3.21.4 that breaks the document selection popup (Issue#1149, PR#1272).

New in Geany 1.28 (Jul 11, 2016)

  • General:
  • Improve support for GTK 3.20.
  • System filetype files and system tags files are now in sub-directories filedefs/ and tags/ respectively (Jiří Techet, PR#485).
  • Bug fixes:
  • Fix canceling keybinding overriding by discarding the dialog (Issue#714).
  • Fix type name coloring when types change (Jiří Techet, PR#1039, Issue#1020, Issue#1022).
  • Fix undo of line end type change (Jiří Techet, PR#527, Issue#409).
  • Editor:
  • Update Scintilla to version 3.6.6.
  • Improve Goto Symbol popup contents (Jiří Techet, PR#958).
  • Filetypes:
  • Treat .h headers as C++ by default (Jiří Techet, PR#857).
  • Various improvements to the Ruby parser (Issue#587).
  • Fix Haskell single line comments (Alexander, PR#1029).
  • Update Java keywords (Yan Pashkovsky, PR#1024).
  • Fix handling of curly brackets in Make (Masatake Yamato).
  • Add ECMAScript 6 keywords (Chris Mayo, PR#980).
  • Slight improvement to the Java file template (Philipp Wiesemann, PR#1073).
  • Add missing last-child CSS pseudo-class (Issue#1102).
  • Internationalization:
  • Updated translations: ca, de, el, es, fr, it, ja, lt, pt, ru, sk, tr, zh_CN
  • API:
  • Don't require static strings for key group name and label (PR#1126).
  • Formally add TMTag to the API (Thomas Martitz, PR#1093).
  • Plugins:
  • Class builder: use .hpp extension for C++ headers by default (Yan Pashkovsky, PR#999).
  • OS X:
  • Fix refreshing the keybindings displayed in the menus (Jiří Techet, PR#973).

New in Geany 1.27 (Mar 14, 2016)

  • General:
  • Remove Waf build support
  • Improve building plugins on Windows with Mingw
  • Harmonize logging domain of plugins so output to e.g. command line can be better connected to a plugin
  • New plugin LineOperations
  • Depend on Geany 1.27 for Windows builds
  • Increase needed API to 224 (Geany 1.26) for all plugins by removing deprecated symbols
  • Enable travis for some integration test
  • Debugger:
  • Add support for switching threads
  • Fix handling of non-ASCII characters in file names (#259)
  • Speed up stack trace display on large traces (#347)
  • Fix toggling breakpoints for unknown locations
  • Fix handling of escape characters in file names (part of #83)
  • Fix marker for the current frame
  • Report the signal name when the process received one
  • Fix crash when reloading the plugin (#229)
  • Fix many memory leaks and potential crashes
  • GeanyCTags:
  • Follow symbolic links
  • Fix spawning ctags on Windows
  • GeanyNumberedBookmarks:
  • Fix crash in some situations with no documents open (#301)
  • GeanyPy:
  • Convert to a proxy plugin
  • Add keybinding support for Python plugins
  • GeanyVC:
  • Fix a regression where VC-plugin menu was not properly added at the end of menu list
  • Enable spell checking also for GTK3 build
  • GeniusPaste:
  • Make pastebins configurable via configuration files, adding support for user-defined pastebins
  • Add support for using the redirected URI as paste URI
  • Add new pastebins fpaste.org and paste.debian.net
  • MultiTerm:
  • Fix an issue with extracting translatable strings from not shipped C files (PR#392)
  • Projectorganizer:
  • Use the term "symbol" instead of "tag"
  • Improve symlink cycle detection
  • Spellcheck:
  • Fix possible double checking when 'check while typing' is activated
  • Improve detection of English contractions and other use of single quotes
  • Internationalization:
  • Various fixes on plugins to ensure proper localization
  • Updated translations: de, fr, pt, ru

New in Geany 1.26 (Nov 30, 2015)

  • General:
  • New plugin API (Thomas Martitz, PR#469).
  • Add support for "proxy" plugins (Thomas Martitz, PR#629).
  • Bug fixes:
  • Fix "Open in New Window" command (Issue#590).
  • Fix spurious "source file has been modified" (Jiří Techet, Issue#605, PR#621).
  • Don't open more than one document for non-existing paths from the CLI (https://bugs.launchpad.net/linuxmint/+bug/1482558, PR#646).
  • Fix configuration directory encoding on non-UTF-8 non-Windows systems (Dimitar Zhekov, PR#658).
  • Interface:
  • Use monospace font for the message window by default (Jiří Techet, Issue#435, PR#580).
  • Fix mnemonic conflict in "Use multi-line matching" (Ross Konsolebox, Issue#589, PR#647).
  • Editor:
  • Update Scintilla to version 3.6.1.
  • Fix completion popup height when view is zoomed (Issue#702).
  • Fix Go To End Of Display Line when wrapping is on and EOL are visible (Issue#712).
  • Keeping undo history when reloading files is now enabled by default (Thomas Martitz, Issue#562, PR#672).
  • "Strip trailing spaces", "Replace tabs" and "Replace spaces" now follow the current selection (Pavel Sountsov, PR#394).
  • Respect Smart Home Key setting in Go To Start of Display Line.
  • Check whether the document is newer on disk when the window gets focused (Jiří Techet, PR#533).
  • Filetypes:
  • Add Cargo build commands for Rust (Wayne Nilsen, PR#557).
  • Add recent Perl keywords (Olivier Duclos, PR#599).
  • Add missing Python 3 keywords and builtins (PR#755).
  • Improvements to the Rust filetype (Pavel Sountsov, PR#613).
  • Add multiline comment to Haskell (Abel Serrano Juste, PR#638).
  • Recognize .adoc is as Asciidoc (PR#708, PR#711).
  • Recognize .mml and .mathml as XML (Devyn Collier Johnson, PR#731).
  • Internationalization:
  • Updated translations: de, el, es, fr, hu, id, kk, pt, sk, sv, ru
  • Fix internationalization of "Open in New Window" items.
  • API:
  • New plugin API, geany_load_module(), geany_plugin_register(), GEANY_PLUGIN_REGISTER(), geany_plugin_register_full(), GEANY_PLUGIN_REGISTER_FULL() (Thomas Martitz, PR#469).
  • Add support for "proxy" plugins, geany_plugin_register_proxy() (Thomas Martitz, PR#629).
  • Allow user_data parameter and destroy_notify callback to keybindings with new keybindings_set_item_full() and plugin_set_key_group_full() (Thomas Martitz, PR#376).