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
This commit is contained in:
Tyler Wilding
2022-07-18 18:26:57 -04:00
committed by GitHub
parent 50af536e80
commit 01c70368e3
44 changed files with 2398 additions and 19 deletions
@@ -125,7 +125,7 @@ static uint32_t c_symlink2(LinkedObjectFile& f,
word_kind = LinkedWord::EMPTY_PTR;
break;
case SymbolLinkKind::TYPE:
dts.add_symbol(name, "type");
dts.add_symbol(name, "type", {});
word_kind = LinkedWord::TYPE_PTR;
break;
default:
@@ -183,7 +183,7 @@ static uint32_t c_symlink3(LinkedObjectFile& f,
word_kind = LinkedWord::EMPTY_PTR;
break;
case SymbolLinkKind::TYPE:
dts.add_symbol(name, "type");
dts.add_symbol(name, "type", {});
word_kind = LinkedWord::TYPE_PTR;
break;
default: