From 3cd674f440413c6cee9c95c06ec3837ada44b842 Mon Sep 17 00:00:00 2001 From: Horace He Date: Thu, 8 Mar 2018 15:50:21 -0500 Subject: [PATCH 01/20] fix: Readds vimState.lastClickWasPastEOL. Fixes #2404 --- src/mode/modeHandler.ts | 7 ++++--- src/state/vimState.ts | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/mode/modeHandler.ts b/src/mode/modeHandler.ts index 550f24628b9f..dacf64be33ac 100644 --- a/src/mode/modeHandler.ts +++ b/src/mode/modeHandler.ts @@ -181,7 +181,6 @@ export class ModeHandler implements vscode.Disposable { } let toDraw = false; - let isLastClickPastEol = false; if (selection) { let newPosition = new Position(selection.active.line, selection.active.character); @@ -189,7 +188,7 @@ export class ModeHandler implements vscode.Disposable { // Only check on a click, not a full selection (to prevent clicking past EOL) if (newPosition.character >= newPosition.getLineEnd().character && selection.isEmpty) { if (this.vimState.currentMode !== ModeName.Insert) { - isLastClickPastEol = true; + this.vimState.lastClickWasPastEol = true; // This prevents you from mouse clicking past the EOL newPosition = new Position( @@ -202,6 +201,8 @@ export class ModeHandler implements vscode.Disposable { toDraw = true; } + } else if (selection.isEmpty) { + this.vimState.lastClickWasPastEol = false; } this.vimState.cursorPosition = newPosition; @@ -229,7 +230,7 @@ export class ModeHandler implements vscode.Disposable { } // If we prevented from clicking past eol but it is part of this selection, include the last char - if (isLastClickPastEol) { + if (this.vimState.lastClickWasPastEol) { const newStart = new Position(selection.anchor.line, selection.anchor.character + 1); this.vimState.editor.selection = new vscode.Selection(newStart, selection.end); this.vimState.cursorStartPosition = selectionStart; diff --git a/src/state/vimState.ts b/src/state/vimState.ts index 4e786b9b4188..6fff3ff94500 100644 --- a/src/state/vimState.ts +++ b/src/state/vimState.ts @@ -172,6 +172,10 @@ export class VimState implements vscode.Disposable { */ public lastVisualSelectionStart: Position; public lastVisualSelectionEnd: Position; + /** + * Was the previous mouse click past EOL + */ + public lastClickWasPastEol: boolean = false; /** * The mode Vim will be in once this action finishes. From 29f8604d49e0483c9f4dcd3d2d4d1eabada2ced2 Mon Sep 17 00:00:00 2001 From: Horace He Date: Thu, 8 Mar 2018 15:58:41 -0500 Subject: [PATCH 02/20] Added case I missed --- src/mode/modeHandler.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mode/modeHandler.ts b/src/mode/modeHandler.ts index dacf64be33ac..6245236a641a 100644 --- a/src/mode/modeHandler.ts +++ b/src/mode/modeHandler.ts @@ -234,6 +234,7 @@ export class ModeHandler implements vscode.Disposable { const newStart = new Position(selection.anchor.line, selection.anchor.character + 1); this.vimState.editor.selection = new vscode.Selection(newStart, selection.end); this.vimState.cursorStartPosition = selectionStart; + this.vimState.lastClickWasPastEol = false; } if ( From 79962b69be08fcdbd86f4bc59b6d1735bad369be Mon Sep 17 00:00:00 2001 From: Jason Poon Date: Fri, 9 Mar 2018 09:40:30 -0800 Subject: [PATCH 03/20] v0.11.2 changelog --- CHANGELOG.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f21c95fc8904..574e27d88384 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,14 @@ # Change Log -## [v0.11.1](https://github.com/vscodevim/vim/tree/HEAD) +## [v0.11.2](https://github.com/vscodevim/vim/tree/HEAD) -[Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.0...HEAD) +[Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.1...HEAD) + +- Readds vimState.lastClickWasPastEOL. Fixes \#2404 [\#2433](https://github.com/VSCodeVim/Vim/pull/2433) ([Chillee](https://github.com/Chillee)) +- fix: selection in search in visual mode \#2406 [\#2418](https://github.com/VSCodeVim/Vim/pull/2418) ([shortheron](https://github.com/shortheron)) + +## [v0.11.1](https://github.com/vscodevim/vim/tree/v0.11.1) (2018-03-08) +[Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.0...v0.11.1) - Set the timeout to 0 for waitforcursorupdatestopropagate [\#2428](https://github.com/VSCodeVim/Vim/pull/2428) ([Chillee](https://github.com/Chillee)) - fix: use 'fsPath'. closes \#2422 [\#2426](https://github.com/VSCodeVim/Vim/pull/2426) ([jpoon](https://github.com/jpoon)) From 1ad1252731940104ecd5ff233ca487ac5872b095 Mon Sep 17 00:00:00 2001 From: Jason Poon Date: Fri, 9 Mar 2018 09:40:47 -0800 Subject: [PATCH 04/20] bump version --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 43946b66c197..75c8a83abbd8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "vim", - "version": "0.11.1", + "version": "0.11.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 4d65d9821fe8..c13a1c11d4bd 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "Vim", "description": "Vim emulation for Visual Studio Code", "icon": "images/icon.png", - "version": "0.11.1", + "version": "0.11.2", "publisher": "vscodevim", "galleryBanner": { "color": "#e3f4ff", From fb0e1e8f99cdb7a4c78db39cb6d43a7195c4f5de Mon Sep 17 00:00:00 2001 From: Russell Kennington Date: Mon, 12 Mar 2018 06:14:43 -0600 Subject: [PATCH 05/20] await openEditorAtIndex1 command (#2442) Previously there was a bug in VSCode which prevented me from doing: ``` await vscode.commands.executeCommand('workbench.action.openEditorAtIndex1') ``` The most recent release of VSCode (1.21.0) fixes the bug. See https://github.com/Microsoft/vscode/issues/44636 --- src/cmd_line/commands/tab.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/cmd_line/commands/tab.ts b/src/cmd_line/commands/tab.ts index 8a73408b1dec..739743294150 100644 --- a/src/cmd_line/commands/tab.ts +++ b/src/cmd_line/commands/tab.ts @@ -47,8 +47,7 @@ export class TabCommand extends node.CommandBase { switch (this._arguments.tab) { case Tab.Next: if (this._arguments.count /** not undefined or 0 */) { - // do not await workbench.action.openEditorAtIndex1 because it will never resolve - vscode.commands.executeCommand('workbench.action.openEditorAtIndex1'); + await vscode.commands.executeCommand('workbench.action.openEditorAtIndex1'); await this.executeCommandWithCount( this._arguments.count! - 1, 'workbench.action.nextEditorInGroup' @@ -68,8 +67,7 @@ export class TabCommand extends node.CommandBase { ); break; case Tab.First: - // do not await workbench.action.openEditorAtIndex1 because it will never resolve - vscode.commands.executeCommand('workbench.action.openEditorAtIndex1'); + await vscode.commands.executeCommand('workbench.action.openEditorAtIndex1'); break; case Tab.Last: await vscode.commands.executeCommand('workbench.action.openLastEditorInGroup'); From b9c8a9ec855faf079ab1c9d04e538527f244e42c Mon Sep 17 00:00:00 2001 From: Masaya Takeda <844196@gmail.com> Date: Mon, 19 Mar 2018 23:51:13 +0900 Subject: [PATCH 06/20] feat: Added = keybind --- src/actions/commands/actions.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/actions/commands/actions.ts b/src/actions/commands/actions.ts index bb3e29a26879..2b2ca016e4f4 100644 --- a/src/actions/commands/actions.ts +++ b/src/actions/commands/actions.ts @@ -2629,6 +2629,21 @@ class VerticalSplit extends BaseCommand { } } +@RegisterAction +class EvenPaneWidths extends BaseCommand { + modes = [ModeName.Normal, ModeName.Visual, ModeName.VisualLine]; + keys = ['', '=']; + + public async exec(position: Position, vimState: VimState): Promise { + vimState.postponedCodeViewChanges.push({ + command: 'workbench.action.evenEditorWidths', + args: {}, + }); + + return vimState; + } +} + @RegisterAction class CommandTabNext extends BaseTabCommand { keys = [['g', 't'], ['']]; From 20be4bc7c7a2442eedd5863a3a3c371899281347 Mon Sep 17 00:00:00 2001 From: Danish Prakash Date: Fri, 23 Mar 2018 11:47:31 +0530 Subject: [PATCH 07/20] neovim:.ts: typo in log (#2451) --- src/neovim/neovim.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/neovim/neovim.ts b/src/neovim/neovim.ts index 00610938386b..0451dc8a2904 100644 --- a/src/neovim/neovim.ts +++ b/src/neovim/neovim.ts @@ -109,7 +109,7 @@ export class Neovim implements vscode.Disposable { fixedLines.join('\n') ); - console.log(`${lines.length} lines in nvime but ${TextEditor.getLineCount()} in editor.`); + console.log(`${lines.length} lines in nvim but ${TextEditor.getLineCount()} in editor.`); let [row, character] = ((await this.nvim.callFunction('getpos', ['.'])) as Array).slice( 1, From 3e9448be9fbc31b9797f59bd9b4d6cdabcef377b Mon Sep 17 00:00:00 2001 From: Jason Poon Date: Tue, 27 Mar 2018 13:35:51 -0700 Subject: [PATCH 08/20] docs: add documentation for installing xsel. fixes #2071 (#2476) --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index ab954d485ed0..6670adf1601d 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,14 @@ We also recommend going into *System Preferences -> Keyboard* and increasing the VSCodeVim will take over your control keys, just like real vim, so you get the _full_ vim experience. This behaviour can be adjusted with the [`useCtrlKeys`](#vimusectrlkeys) and [`handleKeys`](#vimhandlekeys) settings. +### Linux setup + +If you have configured `vim.useSystemClipboard: "true"`, we rely on [clipboardy](https://github.com/sindresorhus/clipboardy) for cross-platform copy/paste operations. This library is dependent on `xsel`: + +``` +apt install xsel +``` + ## Settings ### Quick example settings From 13a27b7e3d058a0bb4dc4b926530c16339f0d0cd Mon Sep 17 00:00:00 2001 From: Yang Tang Date: Thu, 29 Mar 2018 04:03:26 -0400 Subject: [PATCH 09/20] Respect vim.visualstar configuration (fixes #2469) (#2470) --- src/actions/commands/actions.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/actions/commands/actions.ts b/src/actions/commands/actions.ts index 2b2ca016e4f4..190d42d19dab 100644 --- a/src/actions/commands/actions.ts +++ b/src/actions/commands/actions.ts @@ -1108,7 +1108,11 @@ class CommandSearchVisualForward extends BaseCommand { runsOnceForEachCountPrefix = true; public async exec(position: Position, vimState: VimState): Promise { - return searchCurrentSelection(vimState, SearchDirection.Forward); + if (configuration.visualstar) { + return searchCurrentSelection(vimState, SearchDirection.Forward); + } else { + return searchCurrentWord(position, vimState, SearchDirection.Forward, true); + } } } @@ -1144,7 +1148,11 @@ class CommandSearchVisualBackward extends BaseCommand { runsOnceForEachCountPrefix = true; public async exec(position: Position, vimState: VimState): Promise { - return searchCurrentSelection(vimState, SearchDirection.Backward); + if (configuration.visualstar) { + return searchCurrentSelection(vimState, SearchDirection.Backward); + } else { + return searchCurrentWord(position, vimState, SearchDirection.Backward, true); + } } } From 52b44666478c5ec1e21b8eca0d19d4f5614e8400 Mon Sep 17 00:00:00 2001 From: Jason Poon Date: Thu, 29 Mar 2018 12:23:19 -0700 Subject: [PATCH 10/20] 0.11.3 changelog --- CHANGELOG.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 574e27d88384..af1487793274 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,17 @@ # Change Log -## [v0.11.2](https://github.com/vscodevim/vim/tree/HEAD) +## [v0.11.3](https://github.com/vscodevim/vim/tree/HEAD) -[Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.1...HEAD) +[Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.2...HEAD) + +- docs: add documentation for installing xsel. fixes \#2071 [\#2476](https://github.com/VSCodeVim/Vim/pull/2476) ([jpoon](https://github.com/jpoon)) +- Respect vim.visualstar configuration \(fixes \#2469\) [\#2470](https://github.com/VSCodeVim/Vim/pull/2470) ([ytang](https://github.com/ytang)) +- feat: Added \= keybind [\#2453](https://github.com/VSCodeVim/Vim/pull/2453) ([844196](https://github.com/844196)) +- neovim.ts: typo in log [\#2451](https://github.com/VSCodeVim/Vim/pull/2451) ([prakashdanish](https://github.com/prakashdanish)) +- await openEditorAtIndex1 command [\#2442](https://github.com/VSCodeVim/Vim/pull/2442) ([arussellk](https://github.com/arussellk)) + +## [v0.11.2](https://github.com/vscodevim/vim/tree/v0.11.2) (2018-03-09) +[Full Changelog](https://github.com/vscodevim/vim/compare/v0.11.1...v0.11.2) - Readds vimState.lastClickWasPastEOL. Fixes \#2404 [\#2433](https://github.com/VSCodeVim/Vim/pull/2433) ([Chillee](https://github.com/Chillee)) - fix: selection in search in visual mode \#2406 [\#2418](https://github.com/VSCodeVim/Vim/pull/2418) ([shortheron](https://github.com/shortheron)) @@ -1156,6 +1165,4 @@ - Navigation mode [\#4](https://github.com/VSCodeVim/Vim/pull/4) ([jpoon](https://github.com/jpoon)) - Add ex mode [\#3](https://github.com/VSCodeVim/Vim/pull/3) ([guillermooo](https://github.com/guillermooo)) - - \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* \ No newline at end of file From 7096181feb51a5ed3e886345bc092b5b69fc16d0 Mon Sep 17 00:00:00 2001 From: Jason Poon Date: Thu, 29 Mar 2018 12:23:34 -0700 Subject: [PATCH 11/20] bump version --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 75c8a83abbd8..5b36cb07d78b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "vim", - "version": "0.11.2", + "version": "0.11.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c13a1c11d4bd..49b7aed6ee15 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "Vim", "description": "Vim emulation for Visual Studio Code", "icon": "images/icon.png", - "version": "0.11.2", + "version": "0.11.3", "publisher": "vscodevim", "galleryBanner": { "color": "#e3f4ff", From cf4de25767fafbf6c121fdb4c869b65354759816 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Fri, 30 Mar 2018 01:31:15 -0700 Subject: [PATCH 12/20] Add renovate.json (#2480) --- renovate.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 renovate.json diff --git a/renovate.json b/renovate.json new file mode 100644 index 000000000000..f45d8f110c30 --- /dev/null +++ b/renovate.json @@ -0,0 +1,5 @@ +{ + "extends": [ + "config:base" + ] +} From 2b9254588d02656864253c9e913f0ce1cc37c211 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Fri, 30 Mar 2018 01:39:22 -0700 Subject: [PATCH 13/20] chore(deps): pin dependencies (#2483) --- package.json | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index 49b7aed6ee15..f67b869c8865 100644 --- a/package.json +++ b/package.json @@ -599,24 +599,24 @@ "untildify": "^3.0.2" }, "devDependencies": { - "@types/copy-paste": "^1.1.30", - "@types/diff": "^3.2.2", - "@types/diff-match-patch": "^1.0.32", - "@types/lodash": "^4.14.100", - "@types/mocha": "^2.2.48", - "@types/node": "^9.4.0", - "gulp": "^3.9.1", - "gulp-bump": "^3.0.0", - "gulp-filter": "^5.1.0", - "gulp-git": "^2.5.1", - "gulp-sourcemaps": "^2.6.4", - "gulp-tag-version": "^1.3.1", - "gulp-tslint": "^8.1.2", - "gulp-typescript": "^3.2.4", - "mocha": "^5.0.0", - "prettier": "^1.10.2", - "tslint": "^5.9.1", - "typescript": "^2.7.1", - "vscode": "^1.1.10" + "@types/copy-paste": "1.1.30", + "@types/diff": "3.2.2", + "@types/diff-match-patch": "1.0.32", + "@types/lodash": "4.14.100", + "@types/mocha": "2.2.48", + "@types/node": "9.4.0", + "gulp": "3.9.1", + "gulp-bump": "3.0.0", + "gulp-filter": "5.1.0", + "gulp-git": "2.5.1", + "gulp-sourcemaps": "2.6.4", + "gulp-tag-version": "1.3.1", + "gulp-tslint": "8.1.2", + "gulp-typescript": "3.2.4", + "mocha": "5.0.0", + "prettier": "1.10.2", + "tslint": "5.9.1", + "typescript": "2.7.1", + "vscode": "1.1.10" } } From 3a8a8b04db74bbf038693b39a3464a3be0376a23 Mon Sep 17 00:00:00 2001 From: Jason Poon Date: Fri, 30 Mar 2018 01:45:50 -0700 Subject: [PATCH 14/20] Update renovate.json --- renovate.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index f45d8f110c30..de7a4ffc0a9f 100644 --- a/renovate.json +++ b/renovate.json @@ -1,5 +1,6 @@ { "extends": [ - "config:base" + "config:base", + "default:pinDigestsDisabled" ] } From 26c60fa28ba32f025d254bbc1fbad8baae90154c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Fri, 30 Mar 2018 03:23:37 -0700 Subject: [PATCH 15/20] chore(deps): update dependency @types/lodash to v4.14.106 (#2485) --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5b36cb07d78b..dc552ad36d54 100644 --- a/package-lock.json +++ b/package-lock.json @@ -54,9 +54,9 @@ "dev": true }, "@types/lodash": { - "version": "4.14.100", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.100.tgz", - "integrity": "sha512-RdmitCjynsHc+U09x9LEmMrxNz2lgmeK3jMrfZFO38WZ/wTqojrpe4nRCLzLMLnL+s+8apNofGmQ9KdMxPcfCA==", + "version": "4.14.106", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.106.tgz", + "integrity": "sha512-tOSvCVrvSqFZ4A/qrqqm6p37GZoawsZtoR0SJhlF7EonNZUgrn8FfT+RNQ11h+NUpMt6QVe36033f3qEKBwfWA==", "dev": true }, "@types/mocha": { diff --git a/package.json b/package.json index f67b869c8865..be80c6d88652 100644 --- a/package.json +++ b/package.json @@ -602,7 +602,7 @@ "@types/copy-paste": "1.1.30", "@types/diff": "3.2.2", "@types/diff-match-patch": "1.0.32", - "@types/lodash": "4.14.100", + "@types/lodash": "4.14.106", "@types/mocha": "2.2.48", "@types/node": "9.4.0", "gulp": "3.9.1", From 80f0e3077c4f246a0b209eabf206df43778c0b07 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Fri, 30 Mar 2018 11:24:22 -0700 Subject: [PATCH 16/20] chore(deps): update dependency gulp-tslint to v8.1.3 (#2489) --- package-lock.json | 112 ++++++++++++++++++++++++++++++++++++++++++++-- package.json | 2 +- 2 files changed, 109 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index dc552ad36d54..e88f58ad92ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,6 +53,12 @@ "integrity": "sha512-bPYT5ECFiblzsVzyURaNhljBH2Gh1t9LowgUwciMrNAhFewLkHT2H0Mto07Y4/3KCOGZHRQll3CTtQZ0X11D/A==", "dev": true }, + "@types/fancy-log": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/fancy-log/-/fancy-log-1.3.0.tgz", + "integrity": "sha512-mQjDxyOM1Cpocd+vm1kZBP7smwKZ4TNokFeds9LV7OZibmPJFEzY3+xZMrKfUdNT71lv8GoCPD6upKwHxubClw==", + "dev": true + }, "@types/lodash": { "version": "4.14.106", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.106.tgz", @@ -259,6 +265,12 @@ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -2005,21 +2017,113 @@ } }, "gulp-tslint": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/gulp-tslint/-/gulp-tslint-8.1.2.tgz", - "integrity": "sha512-0RNGqbp2TKPdbG+sWU3mNMXEMuF/noY1KS4+jd5lOStkvuFINkFL29dHX3IT1u+vVFD4Glwf+lkcdR2QMVNMzA==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/gulp-tslint/-/gulp-tslint-8.1.3.tgz", + "integrity": "sha512-KEP350N5B9Jg6o6jnyCyKVBPemJePYpMsGfIQq0G0ErvY7tw4Lrfb/y3L4WRf7ek0OsaE8nnj86w+lcLXW8ovw==", "dev": true, "requires": { - "gulp-util": "3.0.8", + "@types/fancy-log": "1.3.0", + "chalk": "2.3.1", + "fancy-log": "1.3.2", "map-stream": "0.0.7", + "plugin-error": "1.0.1", "through": "2.3.8" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + } + }, + "fancy-log": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", + "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", + "dev": true, + "requires": { + "ansi-gray": "0.1.1", + "color-support": "1.1.3", + "time-stamp": "1.1.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + }, "map-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", "dev": true + }, + "plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "requires": { + "ansi-colors": "1.0.1", + "arr-diff": "4.0.0", + "arr-union": "3.1.0", + "extend-shallow": "3.0.2" + } + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } } } }, diff --git a/package.json b/package.json index be80c6d88652..3540cdc690ac 100644 --- a/package.json +++ b/package.json @@ -611,7 +611,7 @@ "gulp-git": "2.5.1", "gulp-sourcemaps": "2.6.4", "gulp-tag-version": "1.3.1", - "gulp-tslint": "8.1.2", + "gulp-tslint": "8.1.3", "gulp-typescript": "3.2.4", "mocha": "5.0.0", "prettier": "1.10.2", From 63cad25563e4375189635fd5a7ba80ae8cc89f46 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Fri, 30 Mar 2018 11:24:44 -0700 Subject: [PATCH 17/20] chore(deps): update dependency mocha to v5.0.5 (#2490) --- package-lock.json | 35 +++++++++++++++++++---------------- package.json | 4 ++-- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index e88f58ad92ef..c71b7a4e1f04 100644 --- a/package-lock.json +++ b/package-lock.json @@ -66,9 +66,9 @@ "dev": true }, "@types/mocha": { - "version": "2.2.48", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.48.tgz", - "integrity": "sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.0.0.tgz", + "integrity": "sha512-ZS0vBV7Jn5Z/Q4T3VXauEKMDCV8nWOtJJg90OsDylkYJiQwcWtKuLzohWzrthBkerUF7DLMmJcwOPEP0i/AOXw==", "dev": true }, "@types/node": { @@ -3596,15 +3596,15 @@ } }, "mocha": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.0.0.tgz", - "integrity": "sha512-ukB2dF+u4aeJjc6IGtPNnJXfeby5d4ZqySlIBT0OEyva/DrMjVm5HkQxKnHDLKEfEQBsEnwTg9HHhtPHJdTd8w==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.0.5.tgz", + "integrity": "sha512-3MM3UjZ5p8EJrYpG7s+29HAI9G7sTzKEe4+w37Dg0QP7qL4XGsV+Q2xet2cE37AqdgN1OtYQB6Vl98YiPV3PgA==", "dev": true, "requires": { - "browser-stdout": "1.3.0", + "browser-stdout": "1.3.1", "commander": "2.11.0", "debug": "3.1.0", - "diff": "3.3.1", + "diff": "3.5.0", "escape-string-regexp": "1.0.5", "glob": "7.1.2", "growl": "1.10.3", @@ -3613,14 +3613,17 @@ "supports-color": "4.4.0" }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true }, "glob": { "version": "7.1.2", diff --git a/package.json b/package.json index 3540cdc690ac..bd34179a15a7 100644 --- a/package.json +++ b/package.json @@ -603,7 +603,7 @@ "@types/diff": "3.2.2", "@types/diff-match-patch": "1.0.32", "@types/lodash": "4.14.106", - "@types/mocha": "2.2.48", + "@types/mocha": "5.0.0", "@types/node": "9.4.0", "gulp": "3.9.1", "gulp-bump": "3.0.0", @@ -613,7 +613,7 @@ "gulp-tag-version": "1.3.1", "gulp-tslint": "8.1.3", "gulp-typescript": "3.2.4", - "mocha": "5.0.0", + "mocha": "5.0.5", "prettier": "1.10.2", "tslint": "5.9.1", "typescript": "2.7.1", From fb9e8e46ff9fe891e71a364a2f08b5cc51e4fbe7 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 31 Mar 2018 09:12:08 +0200 Subject: [PATCH 18/20] chore(deps): update node to tag 8.11 (#2496) --- build/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Dockerfile b/build/Dockerfile index 4e84dcd84d0b..b3d70c32d712 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,4 +1,4 @@ -FROM node:8.9 +FROM node:8.11 RUN apt-get update && \ apt-get install -y xorg xvfb libxss-dev libgtk2.0-0 gconf2 libnss3 libasound2 From 83a01599441c35006817695619ce431cf9bde36c Mon Sep 17 00:00:00 2001 From: Jason Martin Date: Sat, 31 Mar 2018 22:47:31 -0700 Subject: [PATCH 19/20] Add jumptoanywhere command for easymotion (#2454) * Add jumptoanywhere motion command for easymotion * Add custom jumptoanywhere regex from preferences * Fix regex string bug & change jumptoanywhere to camelcase * Simplify Regex through default preferences & update documentation * Update jumpToAnywhere casing to upper camel case --- README.md | 2 ++ package.json | 5 +++++ src/actions/plugins/easymotion/easymotion.cmd.ts | 6 ++++-- src/actions/plugins/easymotion/registerMoveActions.ts | 9 +++++++++ src/actions/plugins/easymotion/types.ts | 2 ++ src/configuration/configuration.ts | 1 + 6 files changed, 23 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6670adf1601d..ab6ce2a893a6 100644 --- a/README.md +++ b/README.md @@ -430,6 +430,7 @@ Motion Command | Description ` bdw`|Start of word ` bde`|End of word ` bdjk`|Start of line +` j`|JumpToAnywhere motion; default behavior matches beginning & ending of word, camelCase, after _ and after # ` (2s|2f|2F|2t|2T) ` and ` bd2t char>` are also available. The difference is character count required for search. @@ -450,6 +451,7 @@ Setting | Description `vim.easymotionMarkerFontWeight`|The font weight used for the marker text. `vim.easymotionMarkerYOffset`|The distance between the top of the marker and the text (will typically need some adjusting if height or font size have been changed). `vim.easymotionKeys`|The characters used for jump marker name +`vim.easymotionJumpToAnywhereRegex`| Custom regex to match for JumpToAnywhere motion (analogous to `Easymotion_re_anywhere`). Example setting (which also matches start & end of line, as well as Javascript comments in addition to the regular behavior (note the double escaping required): ^\\s*.|\\b[A-Za-z0-9]|[A-Za-z0-9]\\b|_.|\\#.|[a-z][A-Z]|//|.$" ### vim-surround diff --git a/package.json b/package.json index bd34179a15a7..62343bf17471 100644 --- a/package.json +++ b/package.json @@ -488,6 +488,11 @@ "description": "Set the characters used for jump marker name", "default": "hklyuiopnm,qwertzxcvbasdgjf;" }, + "vim.easymotionJumpToAnywhereRegex": { + "type": "string", + "description": "Regex matches for JumpToAnywhere motion", + "default": "\\b[A-Za-z0-9]|[A-Za-z0-9]\\b|_.|#.|[a-z][A-Z]" + }, "vim.sneak": { "type": "boolean", "description": "Enable the Sneak plugin for Vim.", diff --git a/src/actions/plugins/easymotion/easymotion.cmd.ts b/src/actions/plugins/easymotion/easymotion.cmd.ts index 6366aa6bc93a..f2c885f77c7f 100644 --- a/src/actions/plugins/easymotion/easymotion.cmd.ts +++ b/src/actions/plugins/easymotion/easymotion.cmd.ts @@ -299,8 +299,10 @@ export class EasyMotionWordMoveCommandBase extends BaseEasyMotionCommand { vimState: VimState, options?: EasyMotion.SearchOptions ): EasyMotion.Match[] { - // Search for the beginning of all words after the cursor - return vimState.easyMotion.sortedSearch(position, new RegExp('\\w{1,}', 'g'), options); + const regex = this._options.jumpToAnywhere + ? new RegExp(configuration.easymotionJumpToAnywhereRegex, 'g') + : new RegExp('\\w{1,}', 'g'); + return vimState.easyMotion.sortedSearch(position, regex, options); } } diff --git a/src/actions/plugins/easymotion/registerMoveActions.ts b/src/actions/plugins/easymotion/registerMoveActions.ts index f10089019fb7..ea407d0a0e01 100644 --- a/src/actions/plugins/easymotion/registerMoveActions.ts +++ b/src/actions/plugins/easymotion/registerMoveActions.ts @@ -142,6 +142,15 @@ class EasyMotionStartOfWordBidirectionalCommand extends EasyMotionWordMoveComman } } +// easymotion "JumpToAnywhere" motion + +@RegisterAction +class EasyMotionJumpToAnywhereCommand extends EasyMotionWordMoveCommandBase { + constructor() { + super({ key: 'j', leaderCount: 3 }, { jumpToAnywhere: true, labelPosition: 'after' }); + } +} + @RegisterAction class EasyMotionEndOfWordForwardsCommand extends EasyMotionWordMoveCommandBase { constructor() { diff --git a/src/actions/plugins/easymotion/types.ts b/src/actions/plugins/easymotion/types.ts index ceb94b2af277..f9e12edc4aac 100644 --- a/src/actions/plugins/easymotion/types.ts +++ b/src/actions/plugins/easymotion/types.ts @@ -1,4 +1,5 @@ export type LabelPosition = 'after' | 'before'; +export type JumpToAnywhere = true | false; export interface EasyMotionMoveOptionsBase { searchOptions?: 'min' | 'max'; @@ -11,4 +12,5 @@ export interface EasyMotionCharMoveOpions extends EasyMotionMoveOptionsBase { export interface EasyMotionWordMoveOpions extends EasyMotionMoveOptionsBase { labelPosition?: LabelPosition; + jumpToAnywhere?: JumpToAnywhere; } diff --git a/src/configuration/configuration.ts b/src/configuration/configuration.ts index 0f4de21dd30e..6477bd8b5ca8 100644 --- a/src/configuration/configuration.ts +++ b/src/configuration/configuration.ts @@ -203,6 +203,7 @@ class Configuration implements IConfiguration { easymotionMarkerFontWeight = 'normal'; easymotionMarkerYOffset = 0; easymotionKeys = 'hklyuiopnm,qwertzxcvbasdgjf;'; + easymotionJumpToAnywhereRegex = '\\b[A-Za-z0-9]|[A-Za-z0-9]\\b|_.|#.|[a-z][A-Z]'; timeout = 1000; From dcaa0ced86d3455ca54366171966a24e9a3e9d8e Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 4 Apr 2018 01:33:34 +0200 Subject: [PATCH 20/20] chore(deps): update dependency @types/node to v9.6.2 (#2509) --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index c71b7a4e1f04..81ebecac9dec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -72,9 +72,9 @@ "dev": true }, "@types/node": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.0.tgz", - "integrity": "sha512-zkYho6/4wZyX6o9UQ8rd0ReEaiEYNNCqYFIAACe2Tf9DrYlgzWW27OigYHnnztnnZQwVRpwWmZKegFmDpinIsA==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.2.tgz", + "integrity": "sha512-UWkRY9X7RQHp5OhhRIIka58/gVVycL1zHZu0OTsT5LI86ABaMOSbUjAl+b0FeDhQcxclrkyft3kW5QWdMRs8wQ==", "dev": true }, "acorn": { diff --git a/package.json b/package.json index 62343bf17471..104e23ee0468 100644 --- a/package.json +++ b/package.json @@ -609,7 +609,7 @@ "@types/diff-match-patch": "1.0.32", "@types/lodash": "4.14.106", "@types/mocha": "5.0.0", - "@types/node": "9.4.0", + "@types/node": "9.6.2", "gulp": "3.9.1", "gulp-bump": "3.0.0", "gulp-filter": "5.1.0",