This is a work-in-progress PR to add the LSP plugin. There are still some things missing like the documentation but in general the plugin should work. There are 3 modes of operation:
1. Without Geany LSP support
2. With basic LSP support using https://github.com/geany/geany/pull/3849
3. With full LSP support using https://github.com/geany/geany/pull/3850
The plugin should detect with which of these modes Geany was compiled and adjust itself automatically.
For the time being I still plan continue the main development of the plugin under https://github.com/techee/geany-lsp and sync the changes here from time to time.
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany-plugins/pull/1331
-- Commit Summary --
* Add LSP plugin
-- File Changes --
M Makefile.am (4)
M build/geany-plugins.nsi (1)
A build/lsp.m4 (10)
M configure.ac (1)
A lsp/AUTHORS (1)
A lsp/COPYING (340)
A lsp/ChangeLog (0)
A lsp/Makefile.am (4)
A lsp/NEWS (0)
A lsp/README (0)
A lsp/data/Makefile.am (5)
A lsp/data/lsp.conf (102)
A lsp/src/Makefile.am (119)
A lsp/src/json-glib/json-array.c (838)
A lsp/src/json-glib/json-builder.c (845)
A lsp/src/json-glib/json-builder.h (108)
A lsp/src/json-glib/json-debug.c (38)
A lsp/src/json-glib/json-debug.h (51)
A lsp/src/json-glib/json-enum-types.c (123)
A lsp/src/json-glib/json-enum-types.h (33)
A lsp/src/json-glib/json-gboxed.c (301)
A lsp/src/json-glib/json-generator.c (807)
A lsp/src/json-glib/json-generator.h (113)
A lsp/src/json-glib/json-glib.h (44)
A lsp/src/json-glib/json-gobject-private.h (36)
A lsp/src/json-glib/json-gobject.c (1005)
A lsp/src/json-glib/json-gobject.h (250)
A lsp/src/json-glib/json-gvariant.c (1346)
A lsp/src/json-glib/json-gvariant.h (50)
A lsp/src/json-glib/json-node.c (1555)
A lsp/src/json-glib/json-object.c (1261)
A lsp/src/json-glib/json-parser.c (1707)
A lsp/src/json-glib/json-parser.h (244)
A lsp/src/json-glib/json-path.c (998)
A lsp/src/json-glib/json-path.h (88)
A lsp/src/json-glib/json-reader.c (1138)
A lsp/src/json-glib/json-reader.h (161)
A lsp/src/json-glib/json-scanner.c (1371)
A lsp/src/json-glib/json-scanner.h (120)
A lsp/src/json-glib/json-serializable.c (386)
A lsp/src/json-glib/json-types-private.h (185)
A lsp/src/json-glib/json-types.h (534)
A lsp/src/json-glib/json-utils.c (95)
A lsp/src/json-glib/json-utils.h (37)
A lsp/src/json-glib/json-value.c (280)
A lsp/src/json-glib/json-version-macros.h (261)
A lsp/src/json-glib/json-version.h (100)
A lsp/src/jsonrpc-glib/jsonrpc-client.c (1752)
A lsp/src/jsonrpc-glib/jsonrpc-client.h (165)
A lsp/src/jsonrpc-glib/jsonrpc-glib.h (39)
A lsp/src/jsonrpc-glib/jsonrpc-input-stream-private.h (30)
A lsp/src/jsonrpc-glib/jsonrpc-input-stream.c (398)
A lsp/src/jsonrpc-glib/jsonrpc-input-stream.h (67)
A lsp/src/jsonrpc-glib/jsonrpc-marshalers.c (0)
A lsp/src/jsonrpc-glib/jsonrpc-marshalers.h (0)
A lsp/src/jsonrpc-glib/jsonrpc-message.c (0)
A lsp/src/jsonrpc-glib/jsonrpc-message.h (0)
A lsp/src/jsonrpc-glib/jsonrpc-output-stream.c (0)
A lsp/src/jsonrpc-glib/jsonrpc-output-stream.h (0)
A lsp/src/jsonrpc-glib/jsonrpc-server.c (0)
A lsp/src/jsonrpc-glib/jsonrpc-server.h (0)
A lsp/src/jsonrpc-glib/jsonrpc-version-macros.h (0)
A lsp/src/jsonrpc-glib/jsonrpc-version.h (0)
A lsp/src/lsp-autocomplete.c (0)
A lsp/src/lsp-autocomplete.h (0)
A lsp/src/lsp-code-lens.c (0)
A lsp/src/lsp-code-lens.h (0)
A lsp/src/lsp-command.c (0)
A lsp/src/lsp-command.h (0)
A lsp/src/lsp-diagnostics.c (0)
A lsp/src/lsp-diagnostics.h (0)
A lsp/src/lsp-format.c (0)
A lsp/src/lsp-format.h (0)
A lsp/src/lsp-goto-anywhere.c (0)
A lsp/src/lsp-goto-anywhere.h (0)
A lsp/src/lsp-goto-panel.c (0)
A lsp/src/lsp-goto-panel.h (0)
A lsp/src/lsp-goto.c (0)
A lsp/src/lsp-goto.h (0)
A lsp/src/lsp-highlight.c (0)
A lsp/src/lsp-highlight.h (0)
A lsp/src/lsp-hover.c (0)
A lsp/src/lsp-hover.h (0)
A lsp/src/lsp-log.c (0)
A lsp/src/lsp-log.h (0)
A lsp/src/lsp-main.c (0)
A lsp/src/lsp-progress.c (0)
A lsp/src/lsp-progress.h (0)
A lsp/src/lsp-rename.c (0)
A lsp/src/lsp-rename.h (0)
A lsp/src/lsp-rpc.c (0)
A lsp/src/lsp-rpc.h (0)
A lsp/src/lsp-semtokens.c (0)
A lsp/src/lsp-semtokens.h (0)
A lsp/src/lsp-server.c (0)
A lsp/src/lsp-server.h (0)
A lsp/src/lsp-signature.c (0)
A lsp/src/lsp-signature.h (0)
A lsp/src/lsp-symbol-kinds.c (0)
A lsp/src/lsp-symbol-kinds.h (0)
A lsp/src/lsp-symbol.c (0)
A lsp/src/lsp-symbol.h (0)
A lsp/src/lsp-symbols.c (0)
A lsp/src/lsp-symbols.h (0)
A lsp/src/lsp-sync.c (0)
A lsp/src/lsp-sync.h (0)
A lsp/src/lsp-utils.c (0)
A lsp/src/lsp-utils.h (0)
-- Patch Links --
https://github.com/geany/geany-plugins/pull/1331.patchhttps://github.com/geany/geany-plugins/pull/1331.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany-plugins/pull/1331
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany-plugins/pull/1331(a)github.com>
Geany 1.38 Windows 10 x64
When installing in CUSTOM FOLDER (G:\c;\Program Files\) to save space on my C:\ drive - get the following error:-
geany.exe - System Error
X The code execution cannot proceed because libgeamy-0.dll was not found. Reinstalling the program may fix this problem.
The install was successful for the DEFAULT folder C:\Program Files\
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/3106
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/issues/3106(a)github.com>
Hi.
I've been facing this issue for a couple of weeks now. My system is Manjaro Linux with Xfce 4.18 and I'm using Geany daily. (BTW I also have saved my Xfce user session to find back my windows where I want them to be).
I've noticed when I boot my system, sometimes, on random occasions, Geany's configuration has been overwritten with the defaults. It doesn't occur everytime I shut down my system, only randomly and _I haven't been able to find a pattern_. This is really annoying and the only way I've found so far is to restore my configuration from a backup.
I'm using a single F2FS filesystem on a NVMe drive, except for `/boot/efi`, which as required is located on a VFAT filesystem. I have no idea if this is important though. Geany is version 2.0, built 2023-10-23.
Cheers,
π
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/3946
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/issues/3946(a)github.com>
Ubuntu22.04 desktop with LUKS, GNOME 42.9
FileManager: Nautilus (alias Files) 42.6
I set Geany as the default application to open text files
from the FileManager GUI if i click on a .txt file then Geany doesn't get focus,
instead an alert/dialog is displayed which disappears after a few seconds,
this alert/dialog contains the geany logo and the file name,
to be able to assign focus to Geany I have to switch between running programs with ALT+TAB
I checked what happens with other editors
with Gedit and Libreoffice it doesn't occur, it only occurs with Geany
more specifically, it does not occur if you double-click on the file, then all works
however, it occurs if you open the context menu with the keyboard menu key > open file >
with Dconf Editor searched the Nautilus configurations
also searched in geany configurations ~/.config/geany/geany.conf
still didn't solve
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/3531
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/issues/3531(a)github.com>
Make the ctags parser ignore function definitions in Matlab files written within block comments, like:
```matlab
%{
function y = This(is, not, a, function, definition)
%}
function y = But(this, is)
%{ not a block comment ("%{" needs to be on a line on its own)
function y = And(also, this)
%}
```
Block comments are useful for commenting out entire sections of code which may include function definitions, specially since they can be nested (which is also handled appropriately by this PR).
Additionally, this PR allows function declarations to be indented. This is quite common when defining class methods within a class.
This PR is a continuation of PR #3358, which I understand was ready to merge but has been sitting there for a while. So by merging this PR you also get that one. Two for the price of one!
(I didn't make this a separate PR because it touches some of the same lines #3358 touches, so making it a separate PR would have led to merge conflicts in the future. Each individual feature is implemented as a separate commit though.)
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/3563
-- Commit Summary --
* ctags: Matlab: function name only, without args
* Modify (fix) test accordingly
* Improve ctags tests for Matlab
* ctags: Matlab: ignore defs within block comments
* ctags: Matlab: ignore leading whitespace
-- File Changes --
M ctags/parsers/geany_matlab.c (52)
M tests/ctags/matlab_backtracking.m.tags (4)
M tests/ctags/matlab_test.m (14)
M tests/ctags/matlab_test.m.tags (18)
-- Patch Links --
https://github.com/geany/geany/pull/3563.patchhttps://github.com/geany/geany/pull/3563.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3563
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/pull/3563(a)github.com>
On Fedora 27 / Wayland, default install, Geany 1.31
In Nautilus, after associating a file type with Geany (e.g. .log or .txt), opening the file creates a new geany instance if there was none, or a new tab in geany if there was an existing instance.
The small annoyance is in the latter case - the new tab is created and the file is loaded, however if Geany's window is not brought to the front nor put in focus
Geany > Preferences does not seem to expose any setting to control this behavior. Gedit's behavior for the same use case is as expected: a new tab is open and Gedit's window is brought to front and given the focus.
I believe Geany's behavior up until some six months ago (1.29?) did not have this problem
--
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/1698
Fixes #3531 at least on KDE Plasma (tested when opening files from Nautilus). On GNOME / Ubuntu there is not change, but things also do not work for Gedit, so that might be an issue on their side.
This works by looking for the `DESKTOP_STARTUP_ID` environment variable when Geany is started. Normally, this is consumed by GTK automatically to use the proper protocols ([Startup notification](https://specifications.freedesktop.org/startup-notification-s…
) or [xdg-activation](https://wayland.app/protocols/xdg-activation-v1
) on X11 and Wayland respectively). However, when activating an already running Geany instance, this needs to be passed onto it and supplied to GTK there.
This is done by adding a new message to the socket communication for this purpose. This is always parsed, but only has an effect if Geany is running on X11 or Wayland.
Tested (on Ubuntu 24.04):
- KDE Plasma (kwin 5.27.11): Geany can focus itself with this patch (opening files from Nautilus)
- GNOME (mutter 46.2): no change (but Gedit also does not work)
- Wayfire: always works, does not care about having a valid activation token
Not tested on X11, could potentially improve behavior there as well on WMs that are especially strict with focus stealing prevention.
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/4071
-- Commit Summary --
* socket: support startup_id tokens on X11 and Wayland
* socket: add GTK version check for setting startup notification ID
-- File Changes --
M src/libmain.c (6)
M src/socket.c (34)
M src/socket.h (2)
-- Patch Links --
https://github.com/geany/geany/pull/4071.patchhttps://github.com/geany/geany/pull/4071.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/4071
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/pull/4071(a)github.com>
Hello. I wrote some powershell code in geany 2.0:
```
function a
{
$i = 1
Write-Host $i
}
function b
{
Write-Host b
}
a
b
pause
```
And on left side bar see two function:
![1](https://github.com/user-attachments/assets/550b1f36-63c3-45ed-87cc-44d2ca094918)
Suddenly i want add some heredoc to function a:
```
function a
{
$i = 1
$heredoc =
@"
""" $i
"@
Write-Host $heredoc
}
function b
{
Write-Host b
}
a
b
pause
```
Now on left side bar only one function a:
![2](https://github.com/user-attachments/assets/06992f90-54ce-4a72-9c2c-757efe0c4683)
Adding heredoc code breaks function list on left side panel !!!
I cat use single quote delimetr `@'` and function list will show correctly. But some times i need can use double quoted `@"` to use a subexpression as in exampe above.
some detail here: [The PowerShell Here-String – Preserve text formatting](https://4sysops.com/archives/the-powershell-here-string-preserv…
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/4089
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/issues/4089(a)github.com>