diff options
| author | Yong He <yonghe@outlook.com> | 2022-06-27 15:36:00 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-27 15:36:00 -0700 |
| commit | b7638b8fffe78ade657f361cadc08dffc8c10acf (patch) | |
| tree | e27a141cfc6a9cc77356b8cba27b41c495d4ee27 /source/slang/slang-language-server.h | |
| parent | 62d16a23b0ecd72dc624abd7e10b373c40adaa90 (diff) | |
Language server fixes and improvements (#2304)
* Language server: Inlay hints.
* Signature help for base exprs that is not a declref.
* Fix checking of jvp operator.
* Fix.
* Add clang-format based auto formatting.
* Fix clang error.
* Fix clang-format discovery logic.
* Fine tune auto formatting and completion experience.
* Update macos workflow.
* Fixes to configurations.
* Fix parser recovery to trigger completion for index exprs.
* Typo fix.
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-language-server.h')
| -rw-r--r-- | source/slang/slang-language-server.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/source/slang/slang-language-server.h b/source/slang/slang-language-server.h index 17dfc0f16..963df65f6 100644 --- a/source/slang/slang-language-server.h +++ b/source/slang/slang-language-server.h @@ -6,6 +6,8 @@ #include "slang-workspace-version.h" #include "slang-language-server-completion.h" +#include "slang-language-server-auto-format.h" +#include "slang-language-server-inlay-hints.h" namespace Slang { @@ -58,6 +60,10 @@ struct Command Optional<LanguageServerProtocol::CompletionParams> completionArgs; Optional<LanguageServerProtocol::CompletionItem> completionResolveArgs; Optional<LanguageServerProtocol::DocumentSymbolParams> documentSymbolArgs; + Optional<LanguageServerProtocol::InlayHintParams> inlayHintArgs; + Optional<LanguageServerProtocol::DocumentFormattingParams> formattingArgs; + Optional<LanguageServerProtocol::DocumentRangeFormattingParams> rangeFormattingArgs; + Optional<LanguageServerProtocol::DocumentOnTypeFormattingParams> onTypeFormattingArgs; Optional<LanguageServerProtocol::DidChangeConfigurationParams> changeConfigArgs; Optional<LanguageServerProtocol::SignatureHelpParams> signatureHelpArgs; Optional<LanguageServerProtocol::DefinitionParams> definitionArgs; @@ -82,6 +88,8 @@ public: RefPtr<Workspace> m_workspace; Dictionary<String, String> m_lastPublishedDiagnostics; time_t m_lastDiagnosticUpdateTime = 0; + FormatOptions m_formatOptions; + Slang::InlayHintOptions m_inlayHintOptions; bool m_quit = false; List<LanguageServerProtocol::WorkspaceFolder> m_workspaceFolders; @@ -108,6 +116,14 @@ public: const LanguageServerProtocol::SignatureHelpParams& args, const JSONValue& responseId); SlangResult documentSymbol( const LanguageServerProtocol::DocumentSymbolParams& args, const JSONValue& responseId); + SlangResult inlayHint( + const LanguageServerProtocol::InlayHintParams& args, const JSONValue& responseId); + SlangResult formatting( + const LanguageServerProtocol::DocumentFormattingParams& args, const JSONValue& responseId); + SlangResult rangeFormatting( + const LanguageServerProtocol::DocumentRangeFormattingParams& args, const JSONValue& responseId); + SlangResult onTypeFormatting( + const LanguageServerProtocol::DocumentOnTypeFormattingParams& args, const JSONValue& responseId); private: SlangResult parseNextMessage(); @@ -118,6 +134,8 @@ private: void updateSearchPaths(const JSONValue& value); void updateSearchInWorkspace(const JSONValue& value); void updateCommitCharacters(const JSONValue& value); + void updateFormattingOptions(const JSONValue& clangFormatLoc, const JSONValue& clangFormatStyle); + void updateInlayHintOptions(const JSONValue& deducedTypes, const JSONValue& parameterNames); void sendConfigRequest(); void registerCapability(const char* methodName); |
