From a77761ab2517ddc898fc93e50bdaaf862c47aed6 Mon Sep 17 00:00:00 2001 From: Dmytro Meleshko Date: Sun, 24 Oct 2021 12:46:18 +0300 Subject: [PATCH] Fix #11 --- lua/cmp_path/init.lua | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/lua/cmp_path/init.lua b/lua/cmp_path/init.lua index 13f88ed..0237f01 100644 --- a/lua/cmp_path/init.lua +++ b/lua/cmp_path/init.lua @@ -51,13 +51,21 @@ source._dirname = function(self, params) end if prefix:match('%.%./$') then return vim.fn.resolve(buf_dirname .. '/../' .. dirname) - elseif prefix:match('%./$') then + end + if prefix:match('%./$') then return vim.fn.resolve(buf_dirname .. '/' .. dirname) - elseif prefix:match('~/$') then + end + if prefix:match('~/$') then return vim.fn.resolve(vim.fn.expand('~') .. '/' .. dirname) - elseif prefix:match('%$[%a_]+/$') then - return vim.fn.resolve(vim.fn.getenv(prefix:match('%$([%a_]+)/$')) .. '/' .. dirname) - elseif prefix:match('/$') then + end + local env_var_name = prefix:match('%$([%a_]+)/$') + if env_var_name then + local env_var_value = vim.fn.getenv(env_var_name) + if env_var_value ~= vim.NIL then + return vim.fn.resolve(env_var_value .. '/' .. dirname) + end + end + if prefix:match('/$') then local accept = true -- Ignore URL components accept = accept and not prefix:match('%a/$')