diff --git a/package.json b/package.json index 3c38aec..b7a7e4f 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,10 @@ { "command": "mind-reader.runCursorContext", "title": "Run Cursor Context" + }, + { + "command": "mind-reader.getIndent", + "title": "Get Line Indentation" } ], @@ -153,8 +157,19 @@ "command": "mind-reader.navigateForward", "key": "Ctrl+Shift+-", "mac": "" + }, + + { + "command": "mind-reader.selectTheme", + "key": "Ctrl+Shift+1", + "mac": "" + }, + + { + "command": "mind-reader.getIndent", + "key": "Shift+Tab", + "mac": "" } - ], "menus": { "editor/context": [ diff --git a/src/commands.ts b/src/commands.ts index 6a6a976..596c082 100644 --- a/src/commands.ts +++ b/src/commands.ts @@ -117,6 +117,10 @@ const commands: Command[] = [ { name: 'mind-reader.runCursorContext', callback: runCursorContext + }, + { + name: 'mind-reader.getIndent', + callback: getIndent } ]; @@ -146,9 +150,36 @@ function resetEditorScale(): void { vscode.commands.executeCommand('workbench.action.zoomReset'); } +function getIndent(): void { + let editor = vscode.window.activeTextEditor; + if(editor) + { + let lineNum = editor.selection.active.line + 1; + let textLine = editor.document.lineAt(lineNum - 1); + if(textLine.isEmptyOrWhitespace) + { + vscode.window.showInformationMessage("Line number " + lineNum.toString() + " Is Empty"); + } + else + { + // Grab tab format from open document + let tabFmt = { + size: editor.options.tabSize as number, + hard: !editor.options.insertSpaces + }; + let i = pl.Lexer.getIndent(textLine.text, tabFmt); + vscode.window.showInformationMessage("Line Number " + lineNum.toString() + " Indentation " + i.toString()); + } + } + else{ + vscode.window.showErrorMessage('No document currently active'); + } + +} + function runLineContext(): void { let editor = vscode.window.activeTextEditor; - if (editor) { + if (editor){ // current text and line number let editorText = editor.document.getText(); let line = editor.selection.active.line;