It would be great to have the ability to create multiple carets, select multiple pieces, or progressively clone a selection of a word to the next identical match creating multiple selections, not necessarily square, and then be able to type, delete, replace, etc. using the multiple carets until Esc is hit, pasting into all carets with Ctrl-V, and so on.
Here's an animated demonstration of these features: https://www.sublimetext.com/
This is Sublime Text's killer feature, and this would put Geany closer to one of the most reputed, feature rich commercial multiplatform editors, while still being free software. I believe there's support for this in Scintilla, at least to some extent.
This supersets #850.
---
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/issues/1141
This patch adds a simple API allowing LSP plugins to take control of certain Geany built-in features and disabling their implementation in Geany. Currently, autocompletion, calltips, and going to definition/declaration is supported.
Plugins should define the Lsp struct, fill the pointers to the functions implementing the features they override, and register themselves using the lsp_register() call. Similarly, they should unregister themselves using lsp_unregister() when they don't want to provide the Lsp features any more, or, latest, when the plugin gets unloaded.
Each of the currently supported features is implemented using two functions - one checking whether Lsp plugin will override Geany's behavior of this feature, and the other function implementing the feature. For instance for autocompletion:
- autocomplete_available(doc) should return TRUE if the plugin performs autocompletion for the doc's filetype. This function is used to deactivate Geany's autocompletion when the Lsp plugin supports it.
- autocomplete_perform(doc) calls the corresponding interface of the LSP server (which responds asynchronously so when autocomplete_perform() is executed, the results won't be available yet)
The Lsp struct is padded with an array large enough to allow additions of many more functions to the struct and allowing binary compatibility with older LSP plugin versions not implementing all the functions. It's just mandatory that all plugins zero-initialize the allocated Lsp struct (either by creating it on the heap or by allocating it using g_new0() or similar function). NULL pointers in this struct are handled gracefully.
The current implementation supports only a single LSP plugin. However, if in the future arises the need for more LSP plugins running in parallel (e.g. a specialized LSP plugin for certain language together with the current "generic" LSP plugin), the implementation could be extended to support a list of Lsp structs and trying to call the functions defined by them one by one. The current interface should already be sufficient to support such an implementation.
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/3571
-- Commit Summary --
* Add API for LSP plugins
-- File Changes --
M meson.build (3)
M src/Makefile.am (2)
M src/editor.c (32)
M src/keybindings.c (11)
A src/lsp.c (107)
A src/lsp.h (59)
M src/symbols.c (9)
-- Patch Links --
https://github.com/geany/geany/pull/3571.patchhttps://github.com/geany/geany/pull/3571.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3571
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/pull/3571(a)github.com>
This is the complete counterpart of #3849, including the sidebar symbol patches and also https://github.com/geany/geany/pull/3707 and https://github.com/geany/geany/pull/3572.
These are all the diffs against Geany itself from https://github.com/techee/geany-lsp.
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/3850
-- Commit Summary --
* Add interface used by plugins to replace some Geany functionality with their own implementation
* Add Geany code delegating autocompletion to plugins
* Add Geany code delegating calltips to plugins
* Add Geany code delegating symbol goto to plugins
* Add Geany code delegating keyword highlighting to plugins
* Export some types/functions so plugins have access to Geany symbol icons
* Add symbols_reload_tag_list() which plugins can call to reload sidebar symbols
* Replace filetype_has_tags() with document_has_tags()
* Add some extra fields to TMTag
* Export tm_tag_new(), tm_tag_ref() and tm_tag_unref() to plugins
* Add Geany code delegating symbol tree generation to plugins
* Add "session-opening" signal emitted when session opening starts/stops
* Add "document-before-save-as" signal
-- File Changes --
M doc/pluginsignals.c (23)
M meson.build (3)
M plugins/geanyplugin.h (1)
M src/Makefile.am (2)
M src/document.c (21)
M src/document.h (2)
M src/editor.c (34)
M src/filetypes.c (10)
M src/filetypes.h (2)
M src/geanyobject.c (14)
M src/geanyobject.h (2)
M src/keybindings.c (13)
M src/keyfile.c (4)
M src/libmain.c (16)
M src/main.h (2)
A src/pluginextension.c (141)
A src/pluginextension.h (81)
M src/sidebar.c (2)
M src/symbols.c (131)
M src/symbols.h (5)
M src/tagmanager/tm_parser.h (34)
M src/tagmanager/tm_tag.c (23)
M src/tagmanager/tm_tag.h (17)
-- Patch Links --
https://github.com/geany/geany/pull/3850.patchhttps://github.com/geany/geany/pull/3850.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3850
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/pull/3850(a)github.com>
Insert devhelp plugin
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany-plugins/pull/1311
-- Commit Summary --
* Porting devhelp plugin for gtk3. Working display in sidebar and main window. Missing showing SearchBar in sidebar or other tweaks.
* update of the files that make the devhelp-plugin be added to the geany IDE.
* try add SearchBar
* devhelp-plugin working
* library old and files some build artifacts deleted
* editing build file devhelp.m4
* webkit change to new version
* Changing the devhelp plugin maintainer in the MAINTAIN file
* replacing gtk_tool_button_new_from_stock with gtk_tool_button_new on zoom buttons and page forward and back buttons
* modified webkitgtk dependency in devhelp.m4 file
* Update build.yml
* Update build.yml
* Update build.yml
* Update build.yml
* changing webkit library in build.yml file and changing maintainer name in devhelp/README file
* changing webkit library in devhelp.m4
* changing webkit library in README
* insert devhelp plugin
-- File Changes --
M .github/workflows/build.yml (5)
M MAINTAINERS (7)
M Makefile.am (4)
M README (1)
A build/devhelp.m4 (29)
M configure.ac (1)
A devhelp/AUTHORS (1)
A devhelp/COPYING (674)
A devhelp/ChangeLog (0)
A devhelp/INSTALL (365)
A devhelp/Makefile.am (10)
A devhelp/NEWS (16)
A devhelp/README (114)
A devhelp/autogen.sh (6)
A devhelp/config.status (1863)
A devhelp/configure (5620)
A devhelp/configure.ac (34)
A devhelp/configure.scan (29)
A devhelp/data/Makefile.am (10)
A devhelp/data/devhelp-plugin-48.png (0)
A devhelp/data/devhelp-plugin.svg (467)
A devhelp/data/devhelp.conf (67)
A devhelp/data/geany-devhelp-plugin.png (0)
A devhelp/data/geany-devhelp.png (0)
A devhelp/data/home.html (16)
A devhelp/doc/Doxyfile (1630)
A devhelp/libtool (11748)
A devhelp/m4/libtool.m4 (8394)
A devhelp/m4/ltoptions.m4 (437)
A devhelp/m4/ltsugar.m4 (124)
A devhelp/m4/ltversion.m4 (23)
A devhelp/m4/lt~obsolete.m4 (99)
A devhelp/src/Makefile.am (40)
A devhelp/src/dhp-manpages.c (240)
A devhelp/src/dhp-object.c (1405)
A devhelp/src/dhp-plugin.c (230)
A devhelp/src/dhp-plugin.h (35)
A devhelp/src/dhp-settings.c (349)
A devhelp/src/dhp.h (144)
M po/POTFILES.in (46)
-- Patch Links --
https://github.com/geany/geany-plugins/pull/1311.patchhttps://github.com/geany/geany-plugins/pull/1311.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany-plugins/pull/1311
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany-plugins/pull/1311(a)github.com>
I'm trying to add a `Dockerfile` filetype (primarily so I can use Format->comment_lines in Geany).
When I select Document->filetype, the Dockerfile type doesn't magically appear. Anyone around to give me clues?
My custom filetype_extensions.conf
```
# Filetype extension configuration file for Geany
# Insert as many items as you want, separate them with a ";".
# See Geany's main documentation for details.
[Extensions]
Dockerfile=Dockerfile;
# Note: restarting is required after editing groups
[Groups]
Programming=Arduino;Clojure;CUDA;Cython;Genie;Groovy;Kotlin;Nim;Scala;Swift;
Script=Graphviz;TypeScript;Meson;
Markup=
Misc=JSON;Dockerfile;
None=
```
And my filetypes.Dockerfile
```
# For complete documentation of this file, please see Geany's main documentation
[styling=cmake]
[keywords]
primary=ADD ARG CMD COPY ENV RUN FROM USER WORKDIR
[settings]
# default extension used when saving files
extension=Dockerfile
# MIME type
mime_type=text/x-Dockerfile
# single comments, like # in this file
comment_single=#
comment_use_indent=false
# context action command (please see Geany's main documentation for details)
context_action_cmd=
[indentation]
width=2
# 0 is spaces, 1 is tabs, 2 is tab & spaces
type=0
```
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/3752
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/issues/3752(a)github.com>
Hi,
When caret is on misspelled word, is it possible to open "spelling suggestions" menu using keyboard ?
If not, the support need to be in the plugin code, so will "export" function for key binding ?
Thanks for your help.
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany-plugins/issues/1306
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany-plugins/issues/1306(a)github.com>