Commit graph

17 commits

Author SHA1 Message Date
Ivan Yonchovski
7031ea65cd
Implemented basic macro expand functionality (#20579)
* Implemented level based macro expand functionality

- it can handle single macro call or expand whole function/proc/etc and it

- In addition, I have altered the parser to provide the endInfo for the node.
The usefulness of the `endInfo` is not limited to the `expandMacro`
functionality but also it is useful for `ideOutline` functionality and I have
altered the ideOutline functionality to use `endInfo`. Note `endInfo` most of
the time is lost during the AST transformation thus in `nimsuggest.nim` I am
using freshly parsed tree to get the location information.

* Make sure we stop expanding correctly

* Test CI

* Fix tv3_outline.nim
2023-01-27 07:11:30 +01:00
Ivan Yonchovski
e636c211b0
Implement type command (#19944)
* Implement type command

- this will be mapped to textDocument/typeDefinition in LSP protocol. It will be
very useful for `nim` in particular because typically most of the time the type
is inferred.

* Update nimsuggest/nimsuggest.nim

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2022-07-15 19:56:05 +02:00
Ivan Yonchovski
b41226001c
Initial implementation of nimsuggest v3 (#19826)
* Initial implementation of nimsuggest v3

Rework `nimsuggest` to use caching to make usage of ide commands more efficient.
Previously, all commands no matter what the state of the process is were causing
clean build. In the context of Language Server Protocol(LSP) and lsp clients
this was causing perf issues and overall instability. Overall, the goal of v3 is
to fit to LSP Server needs

- added two new commands:
  - `recompile` to do clean compilation
  - `changed` which can be used by the IDEs to notify that a particular file has been changed.
The later can be utilized when using LSP file watches.
  - `globalSymbols` - searching global references

- added `segfaults` dependency to allow fallback to clean build when incremental
fails. I wish the error to be propagated to the client so we can work on fixing
the incremental build failures (typically hitting pointer)

- more efficient rebuild flow. ATM incremental rebuild is triggered when the
command needs that(i. e. it is global) while the commands that work on the
current source rebuild only it

Things missing in this PR:

- Documentation
- Extensive unit testing.

Although functional I still see this more as a POC that this approach can work.

Next steps:
- Implement `sug` request.
- Rework/extend the protocol to allow better client/server communication.
Ideally we will need push events, diagnostics should be restructored to allow
per file notifications, etc.
- implement v3 test suite.
- better logging

* Add tests for v3 and implement ideSug

* Remove typeInstCache/procInstCache cleanup

* Add ideChkFile command

* Avoid contains call when adding symbol info

* Remove log

* Remove segfaults
2022-06-13 11:33:44 +02:00
Timothee Cour
afc0259b12
fix #18385 followup, by building nimsuggest with -d:release during testing (#18581) 2021-07-29 19:28:33 -07:00
Timothee Cour
39e0a5322a
disable tmacro_highlight on i386, refs #17945 (#17949) 2021-05-06 12:24:16 -07:00
Timothee Cour
a424075b5e
improve nimsuggest/tester, minor improvements to koch.nim (#17879)
* improve nimsuggest/tester

* koch improvements
2021-04-29 13:44:53 +02:00
Timothee Cour
e4a3feeb92
add --processing:dots|filenames|off to customize hintProcessing (#17817) 2021-04-23 08:07:22 +02:00
Timothee Cour
4326f743d0
compilesettings: add libpath (#16997)
* compilesettings: add libpath

* add test

* changelog

* fixup

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2021-02-12 23:50:41 +01:00
Jasper Jenkins
1037318e68
fix nimsuggest warning (#13699) 2020-03-20 09:24:04 +01:00
Federico Ceratto
39290cf88c Fix spellings (#12277) [backport] 2019-09-27 07:02:54 +02:00
Miran
50d1a46537 better docs: osproc (#10708)
* better docs: osproc
* fix a typo in the docs, deprecate "demon"
2019-02-19 17:25:03 +01:00
alaviss
2fb8b1d132 nimsuggest/tester: disable highlight tests for epc (#10426)
The EPC backend of nimsuggest currently doesn't support nimsuggest
highlighter, see nim-lang/nim-mode#140
2019-01-23 09:43:11 +01:00
Timothee Cour
01211ced1d add nim c -r nimsuggest/tester to travis (#8805) 2018-08-29 16:03:16 +02:00
Andreas Rumpf
28c709fa84 cleanup nimsuggest tests a bit 2018-08-10 09:37:41 +02:00
Andreas Rumpf
68181e6da2 nimsuggest: maxresults limit; fixed local symbol usages priorizations 2017-03-10 11:29:16 +01:00
Andreas Rumpf
16cef36cfd nimsuggest now uses 0 based columsn consistently 2017-03-10 09:56:04 +01:00
Araq
4755795416 nimsuggest: more precise cursor tracking 2017-03-09 14:58:14 +01:00
Renamed from tools/nimsuggest/tester.nim (Browse further)