@@ -18,6 +18,8 @@ import * as net from 'net';
1818let client : EffektLanguageClient ;
1919let effektManager : EffektManager ;
2020const outputChannel = vscode . window . createOutputChannel ( 'Effekt Extension' ) ;
21+ export const LANG_ID_EFFEKT = 'effekt' ;
22+ export const LANG_ID_LITERATE_EFFEKT = 'literate effekt' ;
2123
2224function logMessage ( level : 'INFO' | 'ERROR' , message : string ) {
2325 outputChannel . appendLine (
@@ -191,8 +193,8 @@ async function startEffektLanguageServer(context: vscode.ExtensionContext) {
191193 const clientOptions : LanguageClientOptions = {
192194 initializationOptions : vscode . workspace . getConfiguration ( 'effekt' ) ,
193195 documentSelector : [
194- { scheme : 'file' , language : 'effekt' } ,
195- { scheme : 'file' , language : 'literate effekt' } ,
196+ { scheme : 'file' , language : LANG_ID_EFFEKT } ,
197+ { scheme : 'file' , language : LANG_ID_LITERATE_EFFEKT } ,
196198 ] ,
197199 diagnosticCollectionName : 'effekt' ,
198200 synchronize : {
@@ -225,11 +227,11 @@ async function startEffektLanguageServer(context: vscode.ExtensionContext) {
225227function registerCodeLensProviders ( context : vscode . ExtensionContext ) {
226228 context . subscriptions . push (
227229 vscode . languages . registerCodeLensProvider (
228- { language : 'effekt' , scheme : 'file' } ,
230+ { language : LANG_ID_EFFEKT , scheme : 'file' } ,
229231 new EffektRunCodeLensProvider ( ) ,
230232 ) ,
231233 vscode . languages . registerCodeLensProvider (
232- { language : 'literate effekt' , scheme : 'file' } ,
234+ { language : LANG_ID_LITERATE_EFFEKT , scheme : 'file' } ,
233235 new EffektRunCodeLensProvider ( ) ,
234236 ) ,
235237 ) ;
@@ -306,12 +308,12 @@ function initializeHolesView(context: vscode.ExtensionContext) {
306308
307309function registerInlayProvider ( ) {
308310 vscode . languages . registerInlayHintsProvider (
309- { scheme : 'file' , language : 'effekt' } ,
311+ { scheme : 'file' , language : LANG_ID_EFFEKT } ,
310312 new InlayHintProvider ( client ) ,
311313 ) ;
312314
313315 vscode . languages . registerInlayHintsProvider (
314- { scheme : 'file' , language : 'literate effekt' } ,
316+ { scheme : 'file' , language : LANG_ID_LITERATE_EFFEKT } ,
315317 new InlayHintProvider ( client ) ,
316318 ) ;
317319}
@@ -346,6 +348,15 @@ function initializeHoleDecorations(context: vscode.ExtensionContext) {
346348 return ;
347349 }
348350
351+ // Only highlight holes in Effekt files
352+ if (
353+ ! [ LANG_ID_EFFEKT , LANG_ID_LITERATE_EFFEKT ] . includes (
354+ editor . document . languageId ,
355+ )
356+ ) {
357+ return ;
358+ }
359+
349360 const text = editor . document . getText ( ) ;
350361 const positionAt = editor . document . positionAt ;
351362
0 commit comments