Skip to content

Commit 11d1830

Browse files
committed
Set context keys for cell language when background is painted
1 parent d9d1515 commit 11d1830

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

apps/vscode/src/providers/background.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import { isQuartoDoc, kQuartoDocSelector } from "../core/doc";
2222
import { MarkdownEngine } from "../markdown/engine";
2323
import { isExecutableLanguageBlock } from "quarto-core";
2424
import { vscRange } from "../core/range";
25+
import { mainLanguage } from "../vdoc/vdoc";
2526

2627
export function activateBackgroundHighlighter(
2728
context: vscode.ExtensionContext,
@@ -162,6 +163,10 @@ async function setEditorHighlightDecorations(
162163
blockRanges.push(vscRange(block.range));
163164
}
164165

166+
// expose cell language for use in keybindings, etc
167+
const language = mainLanguage(tokens);
168+
vscode.commands.executeCommand('setContext', 'quartoLangId', language?.ids[0]);
169+
165170
// find inline executable code
166171
for (let i = 0; i < editor.document.lineCount; i++) {
167172
const line = editor.document.lineAt(i);

apps/vscode/src/vdoc/vdoc.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
*
1414
*/
1515

16-
import { Position, TextDocument, Uri, Range, commands } from "vscode";
16+
import { Position, TextDocument, Uri, Range } from "vscode";
1717
import { Token, isExecutableLanguageBlock, languageBlockAtPosition, languageNameFromBlock } from "quarto-core";
1818

1919
import { isQuartoDoc } from "../core/doc";
@@ -157,12 +157,8 @@ export async function virtualDocUri(
157157
export function languageAtPosition(tokens: Token[], position: Position) {
158158
const block = languageBlockAtPosition(tokens, position);
159159
if (block) {
160-
const language = languageFromBlock(block);
161-
// expose cell language for use in keybindings, etc
162-
commands.executeCommand('setContext', 'quarto.cellLangId', language?.ids[0]);
163-
return language;
160+
return languageFromBlock(block);
164161
} else {
165-
commands.executeCommand('setContext', 'quarto.cellLangId', undefined);
166162
return undefined;
167163
}
168164
}

0 commit comments

Comments
 (0)