Skip to content

Commit 0c65df7

Browse files
authored
Merge pull request #34 from tintinweb/feat/visibleEditorCommands
add commands to list/select from visible editors
2 parents 8a59894 + a3559c0 commit 0c65df7

4 files changed

Lines changed: 53 additions & 5 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Change Log
22

3+
## 0.0.22
4+
- new: command `List Visible Bookmarks` prints bookmarks for currently visible editors (use `List Bookmarks` if you want to print all bookmarks)
5+
- new: command `Select Visible Bookmark` that allows to quickly jump to bookmarks in currently visible editors (use `Select Bookmark` if you want to select from an unfiltered list)
6+
-
37
## 0.0.21
48
- fixed: an update to vscode caused the list-view selection tracking to fail with "cannot read property '_uri' of undefined" - see #33
59

package.json

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "vscode-inline-bookmarks",
33
"displayName": "Inline Bookmarks",
44
"description": "Customizable inline Bookmarks",
5-
"version": "0.0.21",
5+
"version": "0.0.22",
66
"keywords": [
77
"bookmark",
88
"bookmarks",
@@ -39,7 +39,11 @@
3939
"onCommand:inlineBookmarks.toggleShowVisibleFilesOnly",
4040
"onCommand:inlineBookmarks.toggleViewKeepFilesExpanded",
4141
"onCommand:inlineBookmarks.debug.state.reset",
42-
"onCommand:inlineBookmarks.showSelectBookmark"
42+
"onCommand:inlineBookmarks.showSelectBookmark",
43+
"onCommand:inlineBookmarks.showSelectVisibleBookmark",
44+
"onCommand:inlineBookmarks.listBookmarks",
45+
"onCommand:inlineBookmarks.listVisibleBookmarks",
46+
"onCommand:inlineBookmarks.scanWorkspace"
4347
],
4448
"main": "./src/extension.js",
4549
"contributes": {
@@ -100,11 +104,21 @@
100104
"title": "Select Bookmark",
101105
"category": "InlineBookmarks"
102106
},
107+
{
108+
"command": "inlineBookmarks.showSelectVisibleBookmark",
109+
"title": "Select Visible Bookmark",
110+
"category": "InlineBookmarks"
111+
},
103112
{
104113
"command": "inlineBookmarks.listBookmarks",
105114
"title": "List Bookmarks",
106115
"category": "InlineBookmarks"
107116
},
117+
{
118+
"command": "inlineBookmarks.listVisibleBookmarks",
119+
"title": "List Visible Bookmarks",
120+
"category": "InlineBookmarks"
121+
},
108122
{
109123
"command": "inlineBookmarks.scanWorkspace",
110124
"title": "Scan Workspace for Bookmarks",

src/extension.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,12 +204,24 @@ function onActivate(context) {
204204
})
205205
);
206206

207+
context.subscriptions.push(
208+
vscode.commands.registerCommand("inlineBookmarks.showSelectVisibleBookmark", () => {
209+
auditTags.commands.showSelectVisibleBookmark();
210+
})
211+
);
212+
207213
context.subscriptions.push(
208214
vscode.commands.registerCommand("inlineBookmarks.listBookmarks", () => {
209215
auditTags.commands.showListBookmarks();
210216
})
211217
);
212218

219+
context.subscriptions.push(
220+
vscode.commands.registerCommand("inlineBookmarks.listVisibleBookmarks", () => {
221+
auditTags.commands.showListVisibleBookmarks();
222+
})
223+
);
224+
213225
context.subscriptions.push(
214226
vscode.commands.registerCommand("inlineBookmarks.scanWorkspace", () => {
215227
auditTags.commands.scanWorkspaceBookmarks();

src/features/inlineBookmarks.js

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,17 @@ class Commands {
2626
}, this);
2727
}
2828

29-
showSelectBookmark() {
29+
showSelectBookmark(filter, placeHolder) {
3030

3131
let entries = [];
3232
Object.keys(this.controller.bookmarks).forEach(uri => {
3333
let resource = vscode.Uri.parse(uri).fsPath;
3434
let fname = path.parse(resource).base;
3535

36+
if(!filter(resource)){
37+
return;
38+
}
39+
3640
Object.keys(this.controller.bookmarks[uri]).forEach(cat => {
3741
this.controller.bookmarks[uri][cat].forEach(b => {
3842
entries.push({
@@ -45,12 +49,17 @@ class Commands {
4549

4650
}, this);
4751

48-
vscode.window.showQuickPick(entries, { placeHolder: 'Select bookmarks' }).then(item => {
52+
vscode.window.showQuickPick(entries, { placeHolder: placeHolder || 'Select bookmarks' }).then(item => {
4953
vscode.commands.executeCommand("inlineBookmarks.jumpToRange", item.target.uri, item.target.range);
5054
});
5155
}
5256

53-
showListBookmarks() {
57+
showSelectVisibleBookmark() {
58+
let visibleEditorUris = vscode.window.visibleTextEditors.map(te => te.document.uri.fsPath);
59+
this.showSelectBookmark((resFsPath) => visibleEditorUris.includes(resFsPath), "Select visible bookmarks");
60+
}
61+
62+
showListBookmarks(filter) {
5463

5564
if (!vscode.window.outputChannel) {
5665
vscode.window.outputChannel = vscode.window.createOutputChannel('inlineBookmarks');
@@ -64,6 +73,10 @@ class Commands {
6473
let resource = vscode.Uri.parse(uri).fsPath;
6574
let fname = path.parse(resource).base;
6675

76+
if(!filter(resource)){
77+
return;
78+
}
79+
6780
Object.keys(this.controller.bookmarks[uri]).forEach(cat => {
6881
this.controller.bookmarks[uri][cat].forEach(b => {
6982
entries.push({
@@ -98,6 +111,11 @@ class Commands {
98111
vscode.window.outputChannel.show();
99112
}
100113

114+
showListVisibleBookmarks() {
115+
let visibleEditorUris = vscode.window.visibleTextEditors.map(te => te.document.uri.fsPath);
116+
this.showListBookmarks((resFsPath) => visibleEditorUris.includes(resFsPath));
117+
}
118+
101119
scanWorkspaceBookmarks() {
102120

103121
function arrayToSearchGlobPattern(config) {

0 commit comments

Comments
 (0)