33// Implementations of language utility providers for the vmt language.
44// ==========================================================================
55
6- import { CompletionItemProvider , TextDocument , Position , CancellationToken , CompletionItem , CompletionList , Range , SemanticTokensBuilder , SemanticTokensLegend , languages , HoverProvider , Hover , ProviderResult , Diagnostic , DiagnosticSeverity , DocumentColorProvider , Color , ColorInformation , ColorPresentation , CompletionItemKind , SnippetString , MarkdownString , ExtensionContext , DocumentSelector } from "vscode" ;
6+ import { CompletionItemProvider , TextDocument , Position , CancellationToken , CompletionItem , CompletionList , Range , SemanticTokensBuilder , SemanticTokensLegend , languages , HoverProvider , Hover , ProviderResult , Diagnostic , DiagnosticSeverity , DocumentColorProvider , Color , ColorInformation , ColorPresentation , CompletionItemKind , SnippetString , MarkdownString , ExtensionContext , DocumentSelector , DocumentFilter } from "vscode" ;
77import { KeyvalueDocument , getDocument , KeyValue , KeyvalueDocumentFormatter , KvTokensProviderBase , Processor , legend } from "../keyvalue-document" ;
88import { Token } from "../kv-core/kv-tokenizer" ;
99import { ShaderParam } from "../kv-core/shader-param" ;
@@ -13,7 +13,15 @@ import { config } from "../main";
1313import { isFloatValue , isScalarValue } from "../kv-core/kv-string-util" ;
1414
1515
16- export const selector : DocumentSelector = "vmt" ;
16+ export const filterVmtSaved : DocumentFilter = {
17+ language : "vmt" ,
18+ scheme : "file"
19+ } ;
20+ export const filterVmtUnsaved : DocumentFilter = {
21+ language : "vmt" ,
22+ scheme : "untitled"
23+ } ;
24+ export const selectorAll : ReadonlyArray < DocumentFilter > = [ filterVmtSaved , filterVmtUnsaved ] ;
1725
1826export let shaderParams : ShaderParam [ ] ;
1927export let internalTextures : string [ ] ;
@@ -22,11 +30,11 @@ export function init(context: ExtensionContext): void {
2230 shaderParams = config . get ( "shaderParameters" ) ?? [ ] ;
2331 internalTextures = config . get ( "internalTextures" ) ?? [ ] ;
2432
25- const vmtSemantics = languages . registerDocumentSemanticTokensProvider ( selector , new VmtSemanticTokenProvider ( ) , legend ) ;
26- const vmtCompletion = languages . registerCompletionItemProvider ( selector , new ShaderParamCompletionItemProvider ( ) , "$" , "%" ) ;
27- const vmtHover = languages . registerHoverProvider ( selector , new ShaderParamHoverProvider ( ) ) ;
28- const vmtColors = languages . registerColorProvider ( selector , new ShaderParamColorsProvider ( ) ) ;
29- const vmtFormatter = languages . registerDocumentFormattingEditProvider ( selector , new KeyvalueDocumentFormatter ( ) ) ;
33+ const vmtSemantics = languages . registerDocumentSemanticTokensProvider ( selectorAll , new VmtSemanticTokenProvider ( ) , legend ) ;
34+ const vmtCompletion = languages . registerCompletionItemProvider ( selectorAll , new ShaderParamCompletionItemProvider ( ) , "$" , "%" ) ;
35+ const vmtHover = languages . registerHoverProvider ( selectorAll , new ShaderParamHoverProvider ( ) ) ;
36+ const vmtColors = languages . registerColorProvider ( selectorAll , new ShaderParamColorsProvider ( ) ) ;
37+ const vmtFormatter = languages . registerDocumentFormattingEditProvider ( selectorAll , new KeyvalueDocumentFormatter ( ) ) ;
3038 context . subscriptions . push ( vmtSemantics , vmtCompletion , vmtHover , vmtColors , vmtFormatter ) ;
3139}
3240
0 commit comments