Skip to content

Commit

Permalink
Merge branch 'vis-open-fixes' of https://github.com/kj/vis
Browse files Browse the repository at this point in the history
  • Loading branch information
martanne committed Feb 28, 2018
2 parents 113a6a6 + 0be1e2e commit fdb56b0
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 5 deletions.
3 changes: 2 additions & 1 deletion lua/plugins/complete-filename.lua
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ vis:map(vis.modes.INSERT, "<C-x><C-o>", function()
local file = win.file
local pos = win.selection.pos
if not pos then return end
local range = file:text_object_word(pos > 0 and pos-1 or pos);
-- TODO do something clever here
local range = file:text_object_longword(pos > 0 and pos-1 or pos);
if not range then return end
if range.finish > pos then range.finish = pos end
local prefix = file:content(range)
Expand Down
8 changes: 8 additions & 0 deletions vis-lua.c
Original file line number Diff line number Diff line change
Expand Up @@ -2234,6 +2234,14 @@ static int file_mark_get(lua_State *L) {
* @treturn Range range the range
*/

/***
* WORD text object.
*
* @function text_object_longword
* @tparam int pos the position which must be part of the word
* @treturn Range range the range
*/

static int file_text_object(lua_State *L) {
Filerange range = text_range_empty();
File *file = obj_ref_check(L, 1, VIS_LUA_TYPE_FILE);
Expand Down
13 changes: 9 additions & 4 deletions vis-open
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,15 @@ if [ $# -eq 1 -a "$ALLOW_AUTO_SELECT" = 1 ]; then
exec "$0" -p "$VIS_MENU_PROMPT" -f .. $(ls -1)
else
# We've found a single item, and it's not a directory,
# so it must be a filename (or file-like thing) to open.
cd "$(dirname "$1")"
echo "$(pwd -P)"/"$(basename "$1")"
exit 0
# so it must be a filename (or file-like thing) to open,
# unless the parent directory does not exist.
if [ -d "$(dirname "$1")" ]; then
cd "$(dirname "$1")"
echo "$(pwd -P)"/"$(basename "$1" | sed 's/\*$//')"
exit 0
else
exit 1
fi
fi
fi

Expand Down

0 comments on commit fdb56b0

Please sign in to comment.