diff --git a/lib/completion.js b/lib/completion.js index 4ffe3b7a8..25b646904 100644 --- a/lib/completion.js +++ b/lib/completion.js @@ -1,7 +1,9 @@ -var CUSTOM = [''] -var BOOLEAN = false +'use strict' -var options = { +const CUSTOM = [''] +const BOOLEAN = false + +const options = { start: { '--port': CUSTOM, '--auto-watch': BOOLEAN, @@ -30,8 +32,8 @@ var options = { } } -var parseEnv = function (argv, env) { - var words = argv.slice(5) +function parseEnv (argv, env) { + const words = argv.slice(5) return { words: words, @@ -41,7 +43,7 @@ var parseEnv = function (argv, env) { } } -var opositeWord = function (word) { +function opositeWord (word) { if (word.charAt(0) !== '-') { return null } @@ -49,11 +51,11 @@ var opositeWord = function (word) { return word.substr(0, 5) === '--no-' ? '--' + word.substr(5) : '--no-' + word.substr(2) } -var sendCompletionNoOptions = function () {} +function sendCompletionNoOptions () {} -var sendCompletion = function (possibleWords, env) { - var regexp = new RegExp('^' + env.last) - var filteredWords = possibleWords.filter(function (word) { +function sendCompletion (possibleWords, env) { + const regexp = new RegExp('^' + env.last) + const filteredWords = possibleWords.filter(function (word) { return regexp.test(word) && env.words.indexOf(word) === -1 && env.words.indexOf(opositeWord(word)) === -1 }) @@ -67,13 +69,13 @@ var sendCompletion = function (possibleWords, env) { }) } -var glob = require('glob') -var globOpts = { +const glob = require('glob') +const globOpts = { mark: true, nocase: true } -var sendCompletionFiles = function (env) { +function sendCompletionFiles (env) { glob(env.last + '*', globOpts, function (err, files) { if (err) return console.error(err) @@ -85,11 +87,11 @@ var sendCompletionFiles = function (env) { }) } -var sendCompletionConfirmLast = function (env) { +function sendCompletionConfirmLast (env) { console.log(env.last) } -var complete = function (env) { +function complete (env) { if (env.count === 1) { if (env.words[0].charAt(0) === '-') { return sendCompletion(['--help', '--version'], env) @@ -103,8 +105,8 @@ var complete = function (env) { return sendCompletionFiles(env) } - var cmdOptions = options[env.words[0]] - var previousOption = cmdOptions[env.prev] + const cmdOptions = options[env.words[0]] + const previousOption = cmdOptions[env.prev] if (!cmdOptions) { // no completion, wrong command @@ -124,14 +126,14 @@ var complete = function (env) { return sendCompletion(Object.keys(cmdOptions), env) } -var completion = function () { +function completion () { if (process.argv[3] === '--') { return complete(parseEnv(process.argv, process.env)) } // just print out the karma-completion.sh - var fs = require('graceful-fs') - var path = require('path') + const fs = require('graceful-fs') + const path = require('path') fs.readFile(path.resolve(__dirname, '../scripts/karma-completion.sh'), 'utf8', function (err, data) { if (err) return console.error(err) diff --git a/test/unit/completion.spec.js b/test/unit/completion.spec.js index 33f66ee9b..92509666b 100644 --- a/test/unit/completion.spec.js +++ b/test/unit/completion.spec.js @@ -1,10 +1,12 @@ -var c = require('../../lib/completion') +'use strict' + +const c = require('../../lib/completion') describe('completion', () => { - var completion + let completion function mockEnv (line) { - var words = line.split(' ') + const words = line.split(' ') return { words: words,