[IMP] owl-vision: syntax scripts, single quotes attributes and slot props highlight and switch below command

This commit adds the following:

- Syntax builder scripts to make syntaxes easier to read and edit
- Syntax highlight in single quote attributes
- Syntax highlight for slot props
- Basic syntax highlight for xpaths
- Added `Switch Below` command

This commit fixes the following:

- Using `Switch Besides` or `Switch Below` does not open a new panel if one was already open
- Fixed missing space in component's snippet indentation
This commit is contained in:
Bastien Fafchamps (bafa)
2023-11-02 13:33:20 +01:00
committed by Géry Debongnie
parent 398df543fe
commit 34489a2494
13 changed files with 951 additions and 261 deletions
+35
View File
@@ -67,3 +67,38 @@ export function getClosestMatch(str: string, regex: RegExp, lineDelta = 0): stri
return closestMatch[1];
}
export enum OpenDirection {
Active,
Besides,
Below,
}
export async function showResult(result: vscode.Location, openDirection: OpenDirection = OpenDirection.Active) {
let editor = undefined;
if (openDirection == OpenDirection.Active) {
editor = await vscode.window.showTextDocument(result.uri);
} else {
let targetColumn = vscode.ViewColumn.Beside;
const existingDocument = vscode.workspace.textDocuments.find(t => t.uri.path === result.uri.path);
if (existingDocument) {
const currentColumn = vscode.window.activeTextEditor?.viewColumn;
if (currentColumn == vscode.ViewColumn.One) {
targetColumn = vscode.ViewColumn.Two;
} else if (currentColumn == vscode.ViewColumn.Two) {
targetColumn = vscode.ViewColumn.One;
}
editor = await vscode.window.showTextDocument(existingDocument, { viewColumn: targetColumn });
} else {
editor = await vscode.window.showTextDocument(result.uri, { viewColumn: targetColumn });
}
}
if (openDirection === OpenDirection.Below) {
await vscode.commands.executeCommand('workbench.action.editorLayoutTwoRows');
}
editor.revealRange(result.range);
editor.selection = new vscode.Selection(result.range.start, result.range.end);
}