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>
Fix cursor hang when we want to move cursor on top line and this line is folded
To reproduce the problem, when vimode plugin is enabled:
Fold a few lines by clicking the "minus" icon.
Move the cursor to the bottom of these lines and try to move back to the top.
The cursor doesn't go back and seem to hang.
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany-plugins/pull/1326
-- Commit Summary --
* Fix cursor hang when we want to move cursor on top line and this line is folded
-- File Changes --
M vimode/src/cmds/motion.c (2)
-- Patch Links --
https://github.com/geany/geany-plugins/pull/1326.patchhttps://github.com/geany/geany-plugins/pull/1326.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany-plugins/pull/1326
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany-plugins/pull/1326(a)github.com>
This PR addresses some issues of the plugin with folded lines - see the individual commits.
I'd also like to automatically set the cursor position when a block gets folded to be set on the visible line (and not hidden somewhere inside the fold) but right now I don't know how to correctly react to the fold events - see https://sourceforge.net/p/scintilla/bugs/2438/
@scresto09 Do the changes look OK to you and does the plugin behave correctly with them?
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany-plugins/pull/1338
-- Commit Summary --
* vimode: Take into account folded lines when moving cursor
* vimode: Ensure that the line with the cursor is expanded after performing a command
-- File Changes --
M vimode/src/cmd-runner.c (1)
M vimode/src/cmds/motion.c (58)
M vimode/src/excmd-runner.c (2)
M vimode/src/utils.c (9)
M vimode/src/utils.h (1)
-- Patch Links --
https://github.com/geany/geany-plugins/pull/1338.patchhttps://github.com/geany/geany-plugins/pull/1338.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany-plugins/pull/1338
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany-plugins/pull/1338(a)github.com>
1. Suggest using Github for reporting bugs and pull requests instead of sending them by email.
2. Use https:// instead of http://
3. Mention universal-ctags as a maintained version of ctags in geanyctags README
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany-plugins/pull/1348
-- Commit Summary --
* geanyctags, projectorganizer, vimode: Encourage users to use github
* geanyctags, projectorganizer, vimode: Use https in URLs
* geanyctags: Mention the possibility of using universal-ctags
-- File Changes --
M geanyctags/README (13)
M projectorganizer/README (9)
M projectorganizer/src/prjorg-main.c (2)
M vimode/README (10)
M vimode/src/backends/backend-geany.c (2)
-- Patch Links --
https://github.com/geany/geany-plugins/pull/1348.patchhttps://github.com/geany/geany-plugins/pull/1348.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany-plugins/pull/1348
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany-plugins/pull/1348(a)github.com>
My proposial is to add possibility that the user could exclude specific folders and files from showing inside of the explorer of the project and workspace.
Currently seem that the above either doesn't exist or is not documented.
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/3876
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/issues/3876(a)github.com>
I had a script with n variable, wanted to switch to TOTAL
Open replace window
type n
choose Whole word only
It will get '\n' too and IMHO I think it should SKIP new lines, because if Geany replace them, the text would be destroyed.
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/3875
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/issues/3875(a)github.com>
Hi,
I changed the selection color in default theme (File: data\filedefs\filetypes.common) but the changed color doesn't take effect if the "Find" dialog box is open. The changed color takes effect only when the "Find" dialog box is closed.
Here is my change:
-selection=0x000000;0xc0c0c0;false;true
+selection=0x000000;0x00ff00;false;true
I have captured the above issue in two images that I am attaching here.
Question: Is there some solution that the changed color should be applied even if the "Find" dialog box is open?
![Find_Dialog_Box_Open](https://github.com/geany/geany/assets/169445053/a592aa0d-e4cc-460a-bafc-c8893172a1a6)
![Find_Dialog_Box_Closed](https://github.com/geany/geany/assets/169445053/86216a4e-137f-41d6-b3ba-9a699f128d2d)
Regards,
Amit
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/3874
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/issues/3874(a)github.com>
There were mostly expected "problems" like new source files that had to be added, rename of `perl6.c` to `raku.c`, update of kind mappings, etc.
The only unexpected thing is the behavior of the javascript parser - this is from the javascript commit message:
There are lots of differences because of
https://github.com/universal-ctags/ctags/commit/6d85089456ed215ce6b6a673744…
Also
https://github.com/universal-ctags/ctags/commit/b1870b826a384c3567193774372…
seems to confuse the parser in simple.js so it doesn't generate `my_global_var2`.
Finally, Geany reports
```
(geany:820768): Tagmanager-WARNING **: 20:38:28.755: ignoring null tag in /home/parallels/projects/geany/doc/reference/jquery.js(line: 2, language: JavaScript)
```
@b4n Does the PR in general and the javascript parser in particular look good to you? I didn't investigate the javascript parser differences much as I'm not a javascript user myself. At least the NULL warning should be fixed though.
You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/3859
-- Commit Summary --
* Update perl6.c to raku.c parser
* Update all parsers and related files to ctags p6.1.20240421.0
* Add ldscript parser
* Update parser kind mappings
* Map title/subtitle of the rst parser
* Map defines to tm_tag_variable_t of verilog so we get the same output as before
* Map filter to tm_tag_function_t for powershell to get the same output as before
* Update asm test
* Disable roles for macro kinds in C/C++
* Update unit tests for javascript
-- File Changes --
M ctags/Makefile.am (14)
M ctags/dsl/es.c (37)
M ctags/dsl/es.h (6)
M ctags/dsl/optscript.c (240)
M ctags/dsl/optscript.h (2)
M ctags/main/CommonPrelude.c (96)
M ctags/main/args.c (6)
M ctags/main/colprint.c (11)
M ctags/main/ctags.h (50)
M ctags/main/debug.c (5)
M ctags/main/debug.h (14)
M ctags/main/dependency.c (26)
M ctags/main/dependency.h (1)
M ctags/main/dependency_p.h (1)
M ctags/main/e_msoft.h (1)
M ctags/main/entry.c (551)
M ctags/main/entry.h (159)
M ctags/main/error_p.h (4)
M ctags/main/field.c (155)
M ctags/main/field.h (10)
M ctags/main/field_p.h (12)
M ctags/main/fmt.c (12)
M ctags/main/general.h (2)
M ctags/main/htable.c (200)
M ctags/main/htable.h (16)
A ctags/main/interval_tree_generic.h (197)
M ctags/main/keyword.c (38)
M ctags/main/keyword.h (20)
M ctags/main/kind.c (7)
M ctags/main/lregex.c (977)
M ctags/main/lregex_p.h (7)
M ctags/main/lxpath.c (17)
M ctags/main/lxpath.h (2)
M ctags/main/lxpath_p.h (1)
M ctags/main/main.c (2)
M ctags/main/mbcs.c (4)
M ctags/main/mini-geany.c (48)
M ctags/main/nestlevel.c (50)
M ctags/main/nestlevel.h (17)
M ctags/main/numarray.c (12)
M ctags/main/numarray.h (3)
M ctags/main/options.c (238)
M ctags/main/options_p.h (5)
M ctags/main/param.c (92)
M ctags/main/param.h (4)
M ctags/main/param_p.h (21)
M ctags/main/parse.c (655)
M ctags/main/parse.h (35)
M ctags/main/parse_p.h (24)
M ctags/main/parsers_p.h (40)
M ctags/main/promise.c (56)
M ctags/main/promise.h (2)
M ctags/main/ptag.c (39)
M ctags/main/ptag_p.h (5)
M ctags/main/ptrarray.c (18)
M ctags/main/ptrarray.h (4)
M ctags/main/rbtree.c (713)
M ctags/main/rbtree.h (193)
A ctags/main/rbtree_augmented.h (247)
M ctags/main/read.c (144)
M ctags/main/read.h (21)
M ctags/main/read_p.h (9)
M ctags/main/repoinfo.h (2)
M ctags/main/routines.c (59)
M ctags/main/routines.h (5)
M ctags/main/script.c (10)
M ctags/main/script_p.h (6)
M ctags/main/seccomp.c (2)
M ctags/main/selectors.c (445)
M ctags/main/selectors.h (20)
M ctags/main/sort.c (44)
M ctags/main/strlist.c (4)
M ctags/main/subparser.h (1)
M ctags/main/subparser_p.h (1)
M ctags/main/trace.h (14)
M ctags/main/trashbox.c (1)
M ctags/main/types.h (4)
M ctags/main/unwindi.c (6)
A ctags/main/utf8_str.c (83)
A ctags/main/utf8_str.h (22)
M ctags/main/vstring.c (32)
M ctags/main/vstring.h (61)
M ctags/main/writer-ctags.c (79)
M ctags/main/writer-json.c (34)
M ctags/main/writer.c (4)
M ctags/main/writer_p.h (8)
M ctags/main/xtag.c (6)
M ctags/main/xtag_p.h (4)
M ctags/parsers/abaqus.c (6)
M ctags/parsers/ada.c (74)
M ctags/parsers/asciidoc.c (42)
M ctags/parsers/asm.c (654)
M ctags/parsers/autoit.c (34)
M ctags/parsers/basic.c (326)
M ctags/parsers/bibtex.c (93)
A ctags/parsers/bibtex.h (25)
M ctags/parsers/clojure.c (38)
M ctags/parsers/cobol.c (12)
M ctags/parsers/cpreprocessor.c (505)
M ctags/parsers/cpreprocessor.h (26)
M ctags/parsers/css.c (9)
M ctags/parsers/cxx/cxx.c (16)
M ctags/parsers/cxx/cxx_debug.c (17)
M ctags/parsers/cxx/cxx_keyword.c (81)
M ctags/parsers/cxx/cxx_keyword.h (15)
M ctags/parsers/cxx/cxx_parser.c (133)
M ctags/parsers/cxx/cxx_parser_block.c (100)
M ctags/parsers/cxx/cxx_parser_function.c (76)
M ctags/parsers/cxx/cxx_parser_internal.h (16)
M ctags/parsers/cxx/cxx_parser_lambda.c (3)
A ctags/parsers/cxx/cxx_parser_module.c (331)
M ctags/parsers/cxx/cxx_parser_namespace.c (4)
M ctags/parsers/cxx/cxx_parser_template.c (43)
M ctags/parsers/cxx/cxx_parser_tokenizer.c (86)
M ctags/parsers/cxx/cxx_parser_typedef.c (13)
M ctags/parsers/cxx/cxx_parser_using.c (26)
M ctags/parsers/cxx/cxx_parser_variable.c (123)
M ctags/parsers/cxx/cxx_qtmoc.c (3)
M ctags/parsers/cxx/cxx_scope.c (25)
M ctags/parsers/cxx/cxx_scope.h (5)
A ctags/parsers/cxx/cxx_side_chain.c (230)
A ctags/parsers/cxx/cxx_side_chain.h (33)
M ctags/parsers/cxx/cxx_tag.c (159)
M ctags/parsers/cxx/cxx_tag.h (50)
M ctags/parsers/cxx/cxx_token.c (18)
M ctags/parsers/cxx/cxx_token.h (11)
M ctags/parsers/cxx/cxx_token_chain.c (92)
M ctags/parsers/cxx/cxx_token_chain.h (10)
M ctags/parsers/diff.c (4)
M ctags/parsers/erlang.c (10)
M ctags/parsers/flex.c (18)
M ctags/parsers/fortran.c (188)
M ctags/parsers/gdscript.c (74)
M ctags/parsers/geany_lcpp.h (23)
M ctags/parsers/go.c (13)
M ctags/parsers/haskell.c (2)
M ctags/parsers/haxe.c (57)
M ctags/parsers/html.c (181)
M ctags/parsers/iniconf.c (24)
M ctags/parsers/jscript.c (0)
A ctags/parsers/jscript.h (0)
M ctags/parsers/json.c (0)
M ctags/parsers/julia.c (0)
M ctags/parsers/lisp.c (0)
M ctags/parsers/lua.c (0)
M ctags/parsers/make.c (0)
M ctags/parsers/markdown.c (0)
M ctags/parsers/markdown.h (0)
M ctags/parsers/nsis.c (0)
M ctags/parsers/objc.c (0)
M ctags/parsers/ocaml.c (0)
M ctags/parsers/pascal.c (0)
M ctags/parsers/perl.c (0)
M ctags/parsers/perl.h (0)
M ctags/parsers/php.c (0)
M ctags/parsers/powershell.c (0)
M ctags/parsers/python.c (0)
M ctags/parsers/r.c (0)
R ctags/parsers/raku.c (0)
M ctags/parsers/rst.c (0)
M ctags/parsers/ruby.c (0)
A ctags/parsers/ruby.h (0)
M ctags/parsers/rust.c (0)
M ctags/parsers/sh.c (0)
A ctags/parsers/sh.h (0)
M ctags/parsers/sql.c (0)
M ctags/parsers/tcl.c (0)
M ctags/parsers/tcloo.c (0)
M ctags/parsers/tex.c (0)
M ctags/parsers/typescript.c (0)
M ctags/parsers/verilog.c (0)
M ctags/parsers/vhdl.c (0)
M meson.build (0)
M src/tagmanager/tm_parser.c (0)
M src/tagmanager/tm_parser.h (0)
M src/tagmanager/tm_parsers.h (0)
M tests/ctags/1795612.js.tags (0)
M tests/ctags/1850914.js.tags (0)
M tests/ctags/1878155.js.tags (0)
M tests/ctags/1880687.js.tags (0)
M tests/ctags/3470609.js.tags (0)
M tests/ctags/arraylist.js.tags (0)
M tests/ctags/bracematch.js.tags (0)
M tests/ctags/bug1950327.js.tags (0)
M tests/ctags/bug2888482.js.tags (0)
M tests/ctags/bug3571233.js.tags (0)
M tests/ctags/complex-return.js.tags (0)
M tests/ctags/js-class-related-unterminated.js.tags (0)
M tests/ctags/js-const.js.tags (0)
M tests/ctags/js-let.js.tags (0)
M tests/ctags/js-string-continuation.js.tags (0)
M tests/ctags/js-unknown-construct-nesting.js.tags (0)
M tests/ctags/jsFunc_tutorial.js.tags (0)
M tests/ctags/masm.asm.tags (0)
M tests/ctags/parenthesis-rvalue.js.tags (0)
M tests/ctags/secondary_fcn_name.js.tags (0)
M tests/ctags/simple.js.tags (0)
M tests/ctags/simple.rst (0)
M tests/ctags/simple.rst.tags (0)
M tests/ctags/ui5.controller.js.tags (0)
-- Patch Links --
https://github.com/geany/geany/pull/3859.patchhttps://github.com/geany/geany/pull/3859.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3859
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/pull/3859(a)github.com>
Currently, if a link is clicked in the markdown preview, said link is opened in the preview tab itself, instead of calling my main browser.
This might be the desired outcome for relative links, but in my case opening youtube in the embedded browser led to audio glitches and then a nice crash.
Maybe a configurable option? Or absolute links in browser, relative in preview?
Thanks for your work, guys.
--
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-plugins/issues/544