windows path fix: issue #20

pull/25/head
ray-x 3 years ago
parent b68340a467
commit 95b45a6cf6

@ -4,6 +4,9 @@ local log = util.log
local partial = util.partial
local lsphelper = require "navigator.lspwrapper"
local cwd = vim.fn.getcwd(0)
local path_sep = require"navigator.util".path_sep()
local path_cur = require"navigator.util".path_cur()
local M = {}
local function call_hierarchy_handler(direction, err, api, result, _, _, error_message)
@ -23,7 +26,8 @@ local function call_hierarchy_handler(direction, err, api, result, _, _, error_m
local kind = ''
range = call_hierarchy.range
local filename = assert(vim.uri_to_fname(call_hierarchy.uri))
local display_filename = filename:gsub(cwd .. "/", "./", 1)
local display_filename = filename:gsub(cwd .. path_sep, path_cur, 1)
local bufnr = vim.uri_to_bufnr(call_hierarchy.uri)
local row = range.start.line
@ -35,7 +39,6 @@ local function call_hierarchy_handler(direction, err, api, result, _, _, error_m
table.insert(items, {
uri = call_hierarchy.uri,
filename = filename,
-- display_filename = filename:gsub(cwd .. "/", "./", 1),
display_filename = display_filename,
text = kind .. fn,
range = range,

@ -5,6 +5,8 @@ local util = require "navigator.util"
local log = util.log
local error = util.error
local path_sep = require"navigator.util".path_sep()
local path_cur = require"navigator.util".path_cur()
diagnostic_list[vim.bo.filetype] = {}
local diag_hdlr = function(err, method, result, client_id, br, config)
@ -27,7 +29,7 @@ local diag_hdlr = function(err, method, result, client_id, br, config)
for _, v in ipairs(result.diagnostics) do
local item = v
item.filename = assert(vim.uri_to_fname(uri))
item.display_filename = item.filename:gsub(cwd .. "/", "./", 1)
item.display_filename = item.filename:gsub(cwd .. path_sep, path_cur, 1)
item.lnum = v.range.start.line + 1
item.col = v.range.start.character + 1
item.uri = uri

@ -8,6 +8,8 @@ local api = vim.api
local top_center = require"guihua.location".top_center
local path_sep = require"navigator.util".path_sep()
local path_cur = require"navigator.util".path_cur()
function M._preview_location(opts) -- location, width, pos_x, pos_y
local uri = opts.uri
if uri == nil then

@ -3,6 +3,9 @@ local util = require "navigator.util"
local log = util.log
local partial = util.partial
local lsphelper = require "navigator.lspwrapper"
local path_sep = require"navigator.util".path_sep()
local path_cur = require"navigator.util".path_cur()
local cwd = vim.fn.getcwd(0)
local M = {}
@ -25,11 +28,10 @@ local function call_hierarchy_handler(direction, err, _, result, _, _, error_mes
end
for _, range in pairs(call_hierarchy_call.fromRanges) do
local filename = assert(vim.uri_to_fname(call_hierarchy_item.uri))
local display_filename = filename:gsub(cwd .. "/", "./", 1)
local display_filename = filename:gsub(cwd .. path_sep, path_cur, 1)
table.insert(items, {
uri = call_hierarchy_item.uri,
filename = filename,
-- display_filename = filename:gsub(cwd .. "/", "./", 1),
display_filename = call_hierarchy_item.detail or display_filename,
text = kind .. call_hierarchy_item.name,
range = range,

@ -72,8 +72,7 @@ library[vim.fn.expand("$VIMRUNTIME/lua/vim/lsp")] = true
-- [vim.fn.expand("~/repos/nvim/lua")] = true
-- TODO remove onece PR #944 merged to lspconfig
local is_windows = uv.os_uname().version:match("Windows")
local path_sep = is_windows and "\\" or "/"
local path_sep = require"navigator.util".path_sep()
local strip_dir_pat = path_sep .. "([^" .. path_sep .. "]+)$"
local strip_sep_pat = path_sep .. "$"
local dirname = function(path)

@ -8,9 +8,13 @@ local lerr = require"navigator.util".error
local trace = require"navigator.util".trace
local symbol_kind = require"navigator.lspclient.lspkind".symbol_kind
local cwd = vim.fn.getcwd(0)
local path_sep = require"navigator.util".path_sep()
local path_cur = require"navigator.util".path_cur()
cwd = gutil.add_pec(cwd)
ts_nodes = {}
ts_nodes_time = {}
local ts_enabled, _ = pcall(require, "nvim-treesitter.locals")
local TS_analysis_enabled = require"navigator".config_values().treesitter_analysis
@ -81,7 +85,7 @@ function M.symbols_to_items(result)
end
item.filename = vim.uri_to_fname(item.uri)
item.display_filename = item.filename:gsub(cwd .. "/", "./", 1)
item.display_filename = item.filename:gsub(cwd .. path_sep, path_cur, 1)
if item.range == nil or item.range.start == nil then
log("range not set", result[i], item)
end
@ -287,7 +291,7 @@ function M.locations_to_items(locations)
end
item.filename = assert(vim.uri_to_fname(item.uri))
local filename = item.filename:gsub(cwd .. "/", "./", 1)
local filename = item.filename:gsub(cwd .. path_sep, path_cur, 1)
item.display_filename = filename or item.filename
item.call_by = find_ts_func_by_range(funcs, item.range)
item.rpath = util.get_relative_path(cwd, item.filename)
@ -324,7 +328,7 @@ function M.symbol_to_items(locations)
item.uri = locations[i].uri
item.range = locations[i].range
item.filename = assert(vim.uri_to_fname(item.uri))
local filename = item.filename:gsub(cwd .. "/", "./", 1)
local filename = item.filename:gsub(cwd .. path_sep, path_cur, 1)
item.display_filename = filename or item.filename
item.rpath = util.get_relative_path(cwd, item.filename)

@ -247,7 +247,9 @@ local function get_all_nodes(bufnr, filter, summary)
uri = vim.uri_from_bufnr(bufnr)
fname = vim.uri_to_fname(uri)
end
local display_filename = fname:gsub(cwd .. "/", "./", 1)
path_sep = require"navigator.util".path_sep()
path_cur = require"navigator.util".path_cur()
local display_filename = fname:gsub(cwd .. path_sep, path_cur, 1)
local all_nodes = {}
-- Support completion-nvim customized label map

@ -2,6 +2,16 @@
-- and line to highlight
-- Some of function copied from https://github.com/RishabhRD/nvim-lsputils
local M = {log_path = vim.lsp.get_log_path()}
local path_sep = vim.loop.os_uname().sysname == "Windows" and "\\" or "/"
-- local is_windows = uv.os_uname().version:match("Windows")
M.path_sep = function()
return vim.loop.os_uname().sysname == "Windows" and "\\" or "/"
end
M.path_cur = function()
return vim.loop.os_uname().sysname == "Windows" and ".\\" or "./"
end
function M.get_data_from_file(filename, startLine)
local displayLine
if startLine < 3 then
@ -58,7 +68,7 @@ end
function M.get_base(path)
local len = #path
for i = len, 1, -1 do
if path:sub(i, i) == "/" then
if path:sub(i, i) == path_sep then
local ret = path:sub(i + 1, len)
return ret
end
@ -74,7 +84,7 @@ local function getDir(path)
local last_index = 1
for i = 2, len do
local cur_char = path:sub(i, i)
if cur_char == "/" then
if cur_char == path_sep then
local my_data = path:sub(last_index + 1, i - 1)
table.insert(data, my_data)
last_index = i
@ -106,7 +116,7 @@ function M.get_relative_path(base_path, my_path)
end
local data = ""
for i = cur + 1, my_len do
data = data .. my_data[i] .. "/"
data = data .. my_data[i] .. path_sep
end
data = data .. M.get_base(my_path)
return data

Loading…
Cancel
Save