diff --git a/extension.js b/extension.js index 5a362e7..1edfc20 100644 --- a/extension.js +++ b/extension.js @@ -1,6 +1,7 @@ const vscode = require('vscode'); const {newNote, newNoteInWorkspace} = require('./src/newNote'); +const {deleteNote} = require('./src/deleteNote'); const listNotes = require('./src/listNotes'); const listTags = require('./src/listTags') const setupNotes = require('./src/setupNotes'); @@ -27,6 +28,10 @@ function activate(context) { let newNoteInWorkspaceDisposable = vscode.commands.registerCommand('vsnotes.newNoteInWorkspace', newNoteInWorkspace); context.subscriptions.push(newNoteInWorkspaceDisposable); + // Delete a new note + let deleteNoteDisposable = vscode.commands.registerCommand('vsnotes.deleteNote', deleteNote); + context.subscriptions.push(deleteNoteDisposable); + // Open a note let listNotesDisposable = vscode.commands.registerCommand('vsnotes.listNotes', listNotes); context.subscriptions.push(listNotesDisposable); diff --git a/package.json b/package.json index 2bb9a97..ee4cf45 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,10 @@ "description": "Number of recent files to show when running command `List Notes`." }, "vsnotes.noteTitleConvertSpaces": { - "type": ["string", "null"], + "type": [ + "string", + "null" + ], "default": "_", "description": "Automatically convert blank spaces in title to character. To disable set to `null`." }, @@ -236,6 +239,10 @@ "light": "./media/light/sync.svg", "dark": "./media/dark/sync.svg" } + }, + { + "command": "vsnotes.deleteNote", + "title": "Delete Note" } ], "keybindings": [ @@ -275,6 +282,19 @@ "when": "view == vsnotes", "group": "navigation" } + ], + "commandPalette": [ + { + "command": "vsnotes.deleteNote", + "when": "false" + } + ], + "view/item/context": [ + { + "command": "vsnotes.deleteNote", + "group": "7_modification", + "when": "viewItem == note" + } ] } }, diff --git a/src/deleteNote.js b/src/deleteNote.js new file mode 100644 index 0000000..5b24844 --- /dev/null +++ b/src/deleteNote.js @@ -0,0 +1,15 @@ + +const fs = require('fs-extra'); +const vscode = require('vscode'); + +function deleteNote(note) { + fs.remove(note.path, err => { + if(err) return console.error(err); + console.log('successfully remove note'); + vscode.commands.executeCommand('vsnotes.refreshVSNotesView'); + }); +} + +module.exports = { + deleteNote +} diff --git a/src/treeView.js b/src/treeView.js index 7bfa1b1..af58839 100644 --- a/src/treeView.js +++ b/src/treeView.js @@ -94,6 +94,7 @@ class VSNotesTreeView { light: path.join(__filename, '..', '..', 'media', 'light', 'file.svg'), dark: path.join(__filename, '..', '..', 'media', 'dark', 'file.svg') }; + fileTreeItem.contextValue="note"; } return fileTreeItem; }