From 0441b24c21a21bb35b2e7acbf4e7c4392bd3df02 Mon Sep 17 00:00:00 2001 From: Michael Nicholls Date: Tue, 23 Aug 2016 07:11:11 +0100 Subject: [PATCH] Fix autocompleting a non existent directory --- lib/autocomplete.coffee | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/lib/autocomplete.coffee b/lib/autocomplete.coffee index 8dcb910..6775bac 100644 --- a/lib/autocomplete.coffee +++ b/lib/autocomplete.coffee @@ -40,6 +40,7 @@ class AutoComplete if @completions.length == 0 @completions = completeFunc() + complete = '' if @completions.length complete = @completions[@autoCompleteIndex % @completions.length] @autoCompleteIndex++ @@ -48,7 +49,7 @@ class AutoComplete if complete.endsWith('/') && @completions.length == 1 @resetCompletion() - return complete + return complete getCommandCompletion: (command) -> return @filterByPrefix(@commands, command) @@ -63,12 +64,17 @@ class AutoComplete basePath = path.dirname(filePath) baseName = path.basename(filePath) - files = fs.readdirSync(basePath) - - return @filterByPrefix(files, baseName).map((f) => - filePath = path.join(basePath, f) - if fs.lstatSync(filePath).isDirectory() - return command + ' ' + filePath + path.sep - else - return command + ' ' + filePath - ) + try + basePathStat = fs.statSync(basePath) + if basePathStat.isDirectory() + files = fs.readdirSync(basePath) + return @filterByPrefix(files, baseName).map((f) => + filePath = path.join(basePath, f) + if fs.lstatSync(filePath).isDirectory() + return command + ' ' + filePath + path.sep + else + return command + ' ' + filePath + ) + return [] + catch err + return []