Opaque type support
This commit is contained in:
parent
c1d7f0ffa7
commit
162f1b2fbe
@ -914,6 +914,10 @@ pub const TypeWithHandle = struct {
|
||||
return self.isContainer(.Keyword_union);
|
||||
}
|
||||
|
||||
pub fn isOpaqueType(self: TypeWithHandle) bool {
|
||||
return self.isContainer(.Keyword_opaque);
|
||||
}
|
||||
|
||||
pub fn isTypeFunc(self: TypeWithHandle) bool {
|
||||
switch (self.type.data) {
|
||||
.other => |n| {
|
||||
|
@ -92,7 +92,7 @@ var client_capabilities = ClientCapabilities{};
|
||||
var offset_encoding = offsets.Encoding.utf16;
|
||||
|
||||
const initialize_capabilities =
|
||||
\\"capabilities": {"signatureHelpProvider": {"triggerCharacters": ["(",","]},"textDocumentSync": 1,"renameProvider":true,"completionProvider": {"resolveProvider": false,"triggerCharacters": [".",":","@"]},"documentHighlightProvider": false,"hoverProvider": true,"codeActionProvider": false,"declarationProvider": true,"definitionProvider": true,"typeDefinitionProvider": true,"implementationProvider": false,"referencesProvider": true,"documentSymbolProvider": true,"colorProvider": false,"documentFormattingProvider": true,"documentRangeFormattingProvider": false,"foldingRangeProvider": false,"selectionRangeProvider": false,"workspaceSymbolProvider": false,"rangeProvider": false,"documentProvider": true,"workspace": {"workspaceFolders": {"supported": true,"changeNotifications": true}},"semanticTokensProvider": {"documentProvider": true,"legend": {"tokenTypes": ["namespace","type","struct","enum","union","parameter","variable","tagField","field","errorTag","function","keyword","comment","string","number","operator","builtin","label","keywordLiteral"],"tokenModifiers": ["definition","async","documentation", "generic"]}}}}}
|
||||
\\"capabilities": {"signatureHelpProvider": {"triggerCharacters": ["(",","]},"textDocumentSync": 1,"renameProvider":true,"completionProvider": {"resolveProvider": false,"triggerCharacters": [".",":","@"]},"documentHighlightProvider": false,"hoverProvider": true,"codeActionProvider": false,"declarationProvider": true,"definitionProvider": true,"typeDefinitionProvider": true,"implementationProvider": false,"referencesProvider": true,"documentSymbolProvider": true,"colorProvider": false,"documentFormattingProvider": true,"documentRangeFormattingProvider": false,"foldingRangeProvider": false,"selectionRangeProvider": false,"workspaceSymbolProvider": false,"rangeProvider": false,"documentProvider": true,"workspace": {"workspaceFolders": {"supported": true,"changeNotifications": true}},"semanticTokensProvider": {"documentProvider": true,"legend": {"tokenTypes": ["namespace","type","struct","enum","union","opaque","parameter","variable","tagField","field","errorTag","function","keyword","comment","string","number","operator","builtin","label","keywordLiteral"],"tokenModifiers": ["definition","async","documentation", "generic"]}}}}}
|
||||
;
|
||||
|
||||
const initialize_response = ",\"result\": {" ++ initialize_capabilities;
|
||||
|
@ -10,6 +10,7 @@ const TokenType = enum(u32) {
|
||||
@"struct",
|
||||
@"enum",
|
||||
@"union",
|
||||
@"opaque",
|
||||
parameter,
|
||||
variable,
|
||||
tagField,
|
||||
@ -195,6 +196,8 @@ fn colorIdentifierBasedOnType(builder: *Builder, type_node: analysis.TypeWithHan
|
||||
.@"enum"
|
||||
else if (type_node.isUnionType())
|
||||
.@"union"
|
||||
else if (type_node.isOpaqueType())
|
||||
.@"opaque"
|
||||
else
|
||||
TokenType.type;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user