diff --git a/src/dash.ts b/src/dash.ts index c9baf0b..a83b810 100644 --- a/src/dash.ts +++ b/src/dash.ts @@ -5,14 +5,15 @@ export class Dash { constructor(OS: string, option: DashOption) { this.OS = OS; - - this.URIHandler = { - darwin: 'open -g', - linux: 'zeal', - // Same technique as Silverlake Software's "Search Docsets" extension, - // which is written by Velocity's developer and is tested to work with current Velocity on W10. - win32: 'cmd.exe /c start "" ', - }[this.OS] || 'zeal'; + + this.URIHandler = + { + darwin: 'open -g', + linux: 'zeal', + // Same technique as Silverlake Software's "Search Docsets" extension, + // which is written by Velocity's developer and is tested to work with current Velocity on W10. + win32: 'cmd.exe /c start "" ', // TODO: do we need extra space? + }[this.OS] || 'zeal'; this.option = option; } @@ -25,11 +26,14 @@ export class Dash { * @return {string} dash handler and uri */ getCommand(query: string, docsets: string[] = []): string { - const keys = (docsets || []).map(docset => `${this.option.exactDocset ? "exact:" : ""}${docset}`).join(","); + const keys = (docsets || []) + .map(docset => `${this.option.exactDocset ? 'exact:' : ''}${docset}`) + .join(','); const encodedQuery = encodeURIComponent(query); - return `${this.URIHandler} "dash-plugin://query=${encodedQuery}${keys?`&keys=${keys}`:``}"`; + return `${this.URIHandler} "dash-plugin://query=${encodedQuery}${keys + ? `&keys=${keys}` + : ``}"`; } - } export interface DashOption { diff --git a/test/dash.test.ts b/test/dash.test.ts index 617a354..aca136d 100644 --- a/test/dash.test.ts +++ b/test/dash.test.ts @@ -8,7 +8,10 @@ suite('Dash Tests', () => { const dash = new Dash('darwin', dashOptionExactDocsetEnabled); const uri = dash.getCommand('size', ['css', 'less']); - assert.equal(uri, 'open -g "dash-plugin://query=size&keys=exact:css,exact:less"'); + assert.equal( + uri, + 'open -g "dash-plugin://query=size&keys=exact:css,exact:less"' + ); }); test('Get command with no keys for macOS', () => { @@ -24,7 +27,7 @@ suite('Dash Tests', () => { assert.equal( uri, - 'start dash-plugin:// && start dash-plugin://query=size^&keys=exact:css,exact:less' + 'cmd.exe /c start "" "dash-plugin://query=size&keys=exact:css,exact:less"' ); }); @@ -32,14 +35,17 @@ suite('Dash Tests', () => { const dash = new Dash('win32', dashOptionExactDocsetEnabled); const uri = dash.getCommand('size'); - assert.equal(uri, 'start dash-plugin:// && start dash-plugin://query=size'); + assert.equal(uri, 'cmd.exe /c start "" "dash-plugin://query=size"'); }); test('Get command with keys for Linux', () => { const dash = new Dash('linux', dashOptionExactDocsetEnabled); const uri = dash.getCommand('size', ['css', 'less']); - assert.equal(uri, 'zeal "dash-plugin://query=size&keys=exact:css,exact:less"'); + assert.equal( + uri, + 'zeal "dash-plugin://query=size&keys=exact:css,exact:less"' + ); }); test('Get command with no keys for Linux', () => { @@ -49,20 +55,6 @@ suite('Dash Tests', () => { assert.equal(uri, 'zeal "dash-plugin://query=size"'); }); - test('Get keys with exist docset', () => { - const dash = new Dash('darwin', dashOptionExactDocsetEnabled); - const keys = dash.getKeys(['css', 'less']); - - assert.equal(keys, 'exact:css,exact:less'); - }); - - test('Get keys with empty docset', () => { - const dash = new Dash('darwin', dashOptionExactDocsetEnabled); - const keys = dash.getKeys([]); - - assert.equal(keys, ''); - }); - test('Exact docset disabled', () => { const dashOptionExactDocsetDisabled: DashOption = { exactDocset: false };