diff --git a/lua/telescope/actions/history.lua b/lua/telescope/actions/history.lua index 2b08689642..1233b34f99 100644 --- a/lua/telescope/actions/history.lua +++ b/lua/telescope/actions/history.lua @@ -1,5 +1,5 @@ local conf = require("telescope.config").values -local Path = require "plenary.path" +local Path = require "plenary.path2" local utils = require "telescope.utils" local uv = vim.loop diff --git a/lua/telescope/actions/set.lua b/lua/telescope/actions/set.lua index b37c1e874a..f4d71fbf02 100644 --- a/lua/telescope/actions/set.lua +++ b/lua/telescope/actions/set.lua @@ -14,7 +14,7 @@ local a = vim.api local log = require "telescope.log" -local Path = require "plenary.path" +local Path = require "plenary.path2" local state = require "telescope.state" local utils = require "telescope.utils" diff --git a/lua/telescope/actions/utils.lua b/lua/telescope/actions/utils.lua index 81bd870bfc..31f8156585 100644 --- a/lua/telescope/actions/utils.lua +++ b/lua/telescope/actions/utils.lua @@ -108,7 +108,7 @@ end -- Best effort to infer function names for actions.which_key function utils._get_anon_function_name(info) - local Path = require "plenary.path" + local Path = require "plenary.path2" local fname -- if fn defined in string (ie loadstring) source is string -- if fn defined in file, source is file name prefixed with a `@ยด diff --git a/lua/telescope/algos/fzy.lua b/lua/telescope/algos/fzy.lua index bf322ab437..22c564fecb 100644 --- a/lua/telescope/algos/fzy.lua +++ b/lua/telescope/algos/fzy.lua @@ -7,14 +7,7 @@ -- > matches on consecutive letters and starts of words. This allows matching -- > using acronyms or different parts of the path." - J Hawthorn -local has_path, Path = pcall(require, "plenary.path") -if not has_path then - Path = { - path = { - separator = "/", - }, - } -end +local Path = require "plenary.path2" local SCORE_GAP_LEADING = -0.005 local SCORE_GAP_TRAILING = -0.005 diff --git a/lua/telescope/builtin/__files.lua b/lua/telescope/builtin/__files.lua index cc5f905c0f..bd2ff03a66 100644 --- a/lua/telescope/builtin/__files.lua +++ b/lua/telescope/builtin/__files.lua @@ -10,7 +10,7 @@ local utils = require "telescope.utils" local conf = require("telescope.config").values local log = require "telescope.log" -local Path = require "plenary.path" +local Path = require "plenary.path2" local flatten = utils.flatten local filter = vim.tbl_filter diff --git a/lua/telescope/builtin/__git.lua b/lua/telescope/builtin/__git.lua index 1b6e9ed2dd..841273fd6d 100644 --- a/lua/telescope/builtin/__git.lua +++ b/lua/telescope/builtin/__git.lua @@ -8,7 +8,7 @@ local previewers = require "telescope.previewers" local utils = require "telescope.utils" local entry_display = require "telescope.pickers.entry_display" local strings = require "plenary.strings" -local Path = require "plenary.path" +local Path = require "plenary.path2" local conf = require("telescope.config").values local git_command = utils.__git_command diff --git a/lua/telescope/builtin/__internal.lua b/lua/telescope/builtin/__internal.lua index d7d74e7c8f..7578d67629 100644 --- a/lua/telescope/builtin/__internal.lua +++ b/lua/telescope/builtin/__internal.lua @@ -3,7 +3,7 @@ local action_set = require "telescope.actions.set" local action_state = require "telescope.actions.state" local finders = require "telescope.finders" local make_entry = require "telescope.make_entry" -local Path = require "plenary.path" +local Path = require "plenary.path2" local pickers = require "telescope.pickers" local previewers = require "telescope.previewers" local p_window = require "telescope.pickers.window" @@ -319,7 +319,7 @@ internal.symbols = function(opts) local results = {} for _, source in ipairs(sources) do - local data = vim.json.decode(Path:new(source):read()) + local data = vim.json.decode(assert(Path:new(source):read())) for _, entry in ipairs(data) do table.insert(results, entry) end diff --git a/lua/telescope/config.lua b/lua/telescope/config.lua index 716141664c..b8d6dd18f0 100644 --- a/lua/telescope/config.lua +++ b/lua/telescope/config.lua @@ -1,7 +1,7 @@ local strings = require "plenary.strings" local deprecated = require "telescope.deprecated" local sorters = require "telescope.sorters" -local os_sep = require("plenary.path").path.sep +local os_sep = require("plenary.path2").path.sep local has_win = vim.fn.has "win32" == 1 -- Keep the values around between reloads diff --git a/lua/telescope/make_entry.lua b/lua/telescope/make_entry.lua index a1806f37d4..0e0a08dba6 100644 --- a/lua/telescope/make_entry.lua +++ b/lua/telescope/make_entry.lua @@ -37,7 +37,7 @@ local entry_display = require "telescope.pickers.entry_display" local utils = require "telescope.utils" local strings = require "plenary.strings" -local Path = require "plenary.path" +local Path = require "plenary.path2" local treesitter_type_highlight = { ["associated"] = "TSConstant", diff --git a/lua/telescope/previewers/buffer_previewer.lua b/lua/telescope/previewers/buffer_previewer.lua index 18f483df18..942eb5f50e 100644 --- a/lua/telescope/previewers/buffer_previewer.lua +++ b/lua/telescope/previewers/buffer_previewer.lua @@ -1,5 +1,5 @@ local from_entry = require "telescope.from_entry" -local Path = require "plenary.path" +local Path = require "plenary.path2" local utils = require "telescope.utils" local putils = require "telescope.previewers.utils" local Previewer = require "telescope.previewers.previewer" @@ -98,7 +98,7 @@ color_hash[6] = function(line) end local colorize_ls_long = function(bufnr, data, sections) - local windows_add = Path.path.sep == "\\" and 2 or 0 + local windows_add = utils.iswin and 2 or 0 for lnum, line in ipairs(data) do local section = sections[lnum] for i = 1, section[1].end_index - 1 do -- Highlight permissions @@ -125,7 +125,7 @@ local handle_directory_preview = function(filepath, bufnr, opts) local set_colorize_lines if opts.preview.ls_short then set_colorize_lines = function(data, sections) - local PATH_SECTION = Path.path.sep == "\\" and 4 or 6 + local PATH_SECTION = utils.iswin and 4 or 6 local paths = {} for i, line in ipairs(data) do local section = sections[i][PATH_SECTION] @@ -195,7 +195,7 @@ local handle_file_preview = function(filepath, bufnr, stat, opts) end opts.start_time = vim.loop.hrtime() - Path:new(filepath):_read_async(vim.schedule_wrap(function(data) + Path:new(filepath):read(vim.schedule_wrap(function(data) if not vim.api.nvim_buf_is_valid(bufnr) then return end diff --git a/lua/telescope/previewers/term_previewer.lua b/lua/telescope/previewers/term_previewer.lua index bf6f40c85a..d4fa650411 100644 --- a/lua/telescope/previewers/term_previewer.lua +++ b/lua/telescope/previewers/term_previewer.lua @@ -1,6 +1,6 @@ local conf = require("telescope.config").values local utils = require "telescope.utils" -local Path = require "plenary.path" +local Path = require "plenary.path2" local from_entry = require "telescope.from_entry" local Previewer = require "telescope.previewers.previewer" local putil = require "telescope.previewers.utils" diff --git a/lua/telescope/previewers/utils.lua b/lua/telescope/previewers/utils.lua index b430e5a509..b6f91b9c99 100644 --- a/lua/telescope/previewers/utils.lua +++ b/lua/telescope/previewers/utils.lua @@ -3,7 +3,7 @@ local strings = require "plenary.strings" local conf = require("telescope.config").values local Job = require "plenary.job" -local Path = require "plenary.path" +local Path = require "plenary.path2" local telescope_utils = require "telescope.utils" diff --git a/lua/telescope/testharness/init.lua b/lua/telescope/testharness/init.lua index 9a8e707388..6645484865 100644 --- a/lua/telescope/testharness/init.lua +++ b/lua/telescope/testharness/init.lua @@ -1,6 +1,6 @@ local assert = require "luassert" -local Path = require "plenary.path" +local Path = require "plenary.path2" local tester = {} tester.debug = false diff --git a/lua/telescope/utils.lua b/lua/telescope/utils.lua index 44ab5d9b08..dae0b7e3d4 100644 --- a/lua/telescope/utils.lua +++ b/lua/telescope/utils.lua @@ -5,7 +5,7 @@ --- Utilities for writing telescope pickers ---@brief ]] -local Path = require "plenary.path" +local Path = require "plenary.path2" local Job = require "plenary.job" local log = require "telescope.log" @@ -223,7 +223,11 @@ local path_abs = function(path, opts) else cwd = vim.loop.cwd() end - return Path:new(path):make_relative(cwd) + local p = Path:new(path) + if p:is_absolute() then + return Path:new(path):make_relative(cwd, { walk_up = true }) + end + return p.filename end -- IMPORTANT: This function should have been a local function as it's only used @@ -385,7 +389,7 @@ utils.transform_path = function(opts, path) length = shorten.len exclude = shorten.exclude else - length = type(path_display["shorten"]) == "number" and path_display["shorten"] + length = type(path_display["shorten"]) == "number" and path_display["shorten"] or nil end transformed_path = path_shorten(transformed_path, length, exclude) diff --git a/lua/tests/automated/telescope_spec.lua b/lua/tests/automated/telescope_spec.lua index 44594dd3fa..d70c1cd45b 100644 --- a/lua/tests/automated/telescope_spec.lua +++ b/lua/tests/automated/telescope_spec.lua @@ -1,5 +1,5 @@ local picker = require "telescope.pickers" -local Path = require "plenary.path" +local Path = require "plenary.path2" local eq = assert.are.same @@ -108,7 +108,7 @@ describe("telescope", function() describe("fzy", function() local sorter = require("telescope.sorters").get_fzy_sorter() local function score(prompt, line) - line = new_path(line) + line = Path.is_path(line) and line.filename or new_path(line) return sorter:score(prompt, { ordinal = line }, function(val) return val end, function() @@ -167,7 +167,7 @@ describe("telescope", function() end) it("prefers matches at the beginning", function() assert.True(score("ab", "abbb") < score("ab", "babb")) - assert.True(score("test", "testing") < score("test", "/testing")) + assert.True(score("test", "testing") < score("test", Path:new { Path.path.root(), "testing" })) end) it("prefers matches at some locations", function() assert.True(score("a", "/a") < score("a", "ba")) diff --git a/lua/tests/automated/utils_spec.lua b/lua/tests/automated/utils_spec.lua index b99a665cd3..b0e555c311 100644 --- a/lua/tests/automated/utils_spec.lua +++ b/lua/tests/automated/utils_spec.lua @@ -1,4 +1,4 @@ -local Path = require "plenary.path" +local Path = require "plenary.path2" local utils = require "telescope.utils" local eq = assert.are.equal