Skip to content

Commit 8c01ab4

Browse files
committed
Add transaction status cycle command
1 parent 2fc5244 commit 8c01ab4

4 files changed

Lines changed: 37 additions & 0 deletions

File tree

package.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,12 @@
3535
"scopeName": "source.ledger",
3636
"path": "./syntaxes/ledger.tmLanguage"
3737
}
38+
],
39+
"commands": [
40+
{
41+
"command": "ledger.transactionStatusCycle",
42+
"title": "Cycle Transaction Status"
43+
}
3844
]
3945
},
4046
"scripts": {

src/commands/index.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import * as vscode from 'vscode';
2+
import { transactionStatusCycleHandler } from './transactionCommands';
3+
4+
export function registerCommands(context: vscode.ExtensionContext) {
5+
const transactionStatusCycleCommand = vscode.commands.registerCommand(
6+
'ledger.transactionStatusCycle',
7+
transactionStatusCycleHandler
8+
);
9+
context.subscriptions.push(transactionStatusCycleCommand);
10+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import * as vscode from 'vscode';
2+
3+
export function transactionStatusCycleHandler() {
4+
const editor = vscode.window.activeTextEditor;
5+
if (editor) {
6+
const currentLine = editor.document.lineAt(editor.selection.active.line);
7+
8+
if (currentLine.text.includes("!")) {
9+
editor.edit(editBuilder => {
10+
editBuilder.replace(currentLine.range, currentLine.text.replace("!", "*"));
11+
});
12+
} else if (currentLine.text.includes("*")) {
13+
editor.edit(editBuilder => {
14+
editBuilder.replace(currentLine.range, currentLine.text.replace("*", "!"));
15+
});
16+
}
17+
}
18+
}

src/extension.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
import * as vscode from 'vscode';
22
import { LedgerDocumentFormatter } from './formatter';
3+
import { registerCommands } from './commands';
34

45
export function activate(context: vscode.ExtensionContext) {
56

67
console.log('Extension "ledger-cli" is now active!');
78

89
const formatterRegistration = vscode.languages.registerDocumentFormattingEditProvider('ledger', new LedgerDocumentFormatter());
910
context.subscriptions.push(formatterRegistration);
11+
12+
registerCommands(context);
1013
}
1114

1215
export function deactivate() { }

0 commit comments

Comments
 (0)