Tyler Wilding
53277a65ad
LSP: A bunch of new OpenGOAL language features ( #3437 )
...
- Integrate the AST into the LSP, this makes parsing and tokenizing the
files much easier
- Consolidate most of the symbol info tracking in `goalc` to a single
map. Fixed some issues where the old map would never evict symbols when
re-compiling files. There is still some more to cleanup, but this now
can be used as an incrementally updated source-of-truth for the LSP
- re-compile files when they are saved. Ideally this would be done
everytime they are changed but that:
- may be too aggressive
- goalc doesn't compile incrementally yet so it likely would be a worse
UX
Features added, see
https://github.com/open-goal/opengoal-vscode/issues/256
- Hover
![image](https://github.com/open-goal/jak-project/assets/13153231/58dadb5d-582c-4c1f-9ffe-eaa4c85a0255 )
![image](https://github.com/open-goal/jak-project/assets/13153231/b383adde-57fc-462c-a256-b2de5c30ca9a )
- LSP Status fixed
- Type Hierarchy
![image](https://github.com/open-goal/jak-project/assets/13153231/8e681377-1d4e-4336-ad70-1695a4607340 )
- Document Color
![image](https://github.com/open-goal/jak-project/assets/13153231/4e48ccd8-0ed1-4459-a133-5277561e4201 )
- Document Symbols
![Screenshot 2024-03-27
004105](https://github.com/open-goal/jak-project/assets/13153231/8e655034-43c4-4261-b6e0-85de00cbfc7f )
- Completions
![Screenshot 2024-03-30
004504](https://github.com/open-goal/jak-project/assets/13153231/d123a187-af90-466b-9eb7-561b2ee97cd1 )
---------
Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com>
2024-03-30 19:49:07 -04:00
Tyler Wilding
4c6982b0ec
formatter: initial and basic indentation/alignment and expose the formatting via the LSP ( #2673 )
2023-05-28 13:22:00 -04:00
Tyler Wilding
057ae361bf
LSP: OpenGOAL Feature Support - Part 1 ( #2668 )
2023-05-21 17:24:23 -04:00
Tyler Wilding
0ffb912a04
formatter: add tree-sitter dependency and commit early draft work on a proper code formatter ( #2536 )
2023-04-24 23:46:55 -04:00
Tyler Wilding
7dd716ded5
vscode: add snippets for supported ;; og:...
comments ( #1963 )
...
Better documentation on what is supported / makes it faster to type them
without making mistakes.
![image](https://user-images.githubusercontent.com/13153231/195737915-1ed0fc15-e91d-4b35-a7df-0c31ebdc07d1.png )
2022-10-14 19:10:57 -04:00
Tyler Wilding
01c70368e3
LSP: initial LSP implementation for IR files to assist with decompilation ( #1647 )
...
* lsp: json-rpc example is working, a decent place to start...
* lsp: vendor library
* lsp: cleanup and time to get started
* lsp: commit what i got so far
* lsp: example `initialize` payload
* lsp: switch to `stdio`
* stash
* modularize the lsp implementation
* lsp: implement first actual LSP feature - function names in outline
* lsp: produce document diagnostics
* lsp: remove unused third-party lib
* lsp: support hovering MIPS instructions in IR files
* lsp: basic go-to all-types definition
* stash
* lsp: cleanup code, just need to add it to the release artifacts
* fix some project configuration
* fix linux build
* lsp: add lsp to PR artifacts and release assets
* lsp: address feedback
2022-07-18 18:26:57 -04:00