From 87c56f266a50501de8f44037a2592b8924f05fbe Mon Sep 17 00:00:00 2001 From: t0xa Date: Tue, 23 Dec 2025 14:52:18 +0300 Subject: [PATCH] ftplugin-md: disable telescope FDH feature (redo this with fzf-lua) --- ftplugin/markdown.lua | 156 +++++++++++++----------------------------- 1 file changed, 47 insertions(+), 109 deletions(-) diff --git a/ftplugin/markdown.lua b/ftplugin/markdown.lua index ac59b42..29064ad 100644 --- a/ftplugin/markdown.lua +++ b/ftplugin/markdown.lua @@ -1,112 +1,50 @@ local keymap = vim.keymap --- Function to go by cursor path -local function open_file_under_cursor() - -- Get the current line - local line = vim.api.nvim_get_current_line() - local col = vim.api.nvim_win_get_cursor(0)[2] - - -- Pattern to match file paths (adjust as needed) - -- This pattern matches: /path/to/file.ext or /path/to/file.ext:line:col - local pattern = "([~/][%w%p]*%.%w+):?(%d*):?(%d*)" - print(col) - - -- Find all matches in the line - for path, line_num, col_num in line:gmatch(pattern) do - -- Get start and end position of the match - local start_pos, end_pos = line:find(vim.pesc(path), 1, true) - - -- Check if cursor is within this match - if start_pos and end_pos and col >= start_pos - 1 and col < end_pos then - -- Expand home directory if needed - local expanded_path = path:gsub("^~", os.getenv("HOME")) - - -- Check if file exists - local file = io.open(expanded_path, "r") - if file then - file:close() - - -- Open the file - vim.cmd("edit " .. vim.fn.fnameescape(expanded_path)) - - -- Jump to line and column if provided - if line_num ~= "" then - vim.api.nvim_win_set_cursor(0, { tonumber(line_num), tonumber(col_num) or 0 }) - end - - return - end - end - end - - -- print("No valid file path found under cursor") -end - --- Map to a key, e.g., gf (go to file) -vim.keymap.set('n', 'gf', open_file_under_cursor, { desc = 'Open file path under cursor' }) - -- Picker for markdown headers -local pickers = require("telescope.pickers") -local finders = require("telescope.finders") -local conf = require("telescope.config").values -local actions = require("telescope.actions") -local action_state = require("telescope.actions.state") - -local function formatted_date() - local current_date = os.date("%Y-%m-%d") - if type(current_date) == "string" then - vim.api.nvim_put({ current_date }, 'c', true, true) - end -end - -local function formatted_datetime() - local current_datetime = os.date("%Y-%m-%d %HH:%MM") - if type(current_datetime) == "string" then - vim.api.nvim_put({ current_datetime }, 'c', true, true) - end -end - -local function markdown_headings() - local bufnr = vim.api.nvim_get_current_buf() - local lines = vim.api.nvim_buf_get_lines(bufnr, 0, -1, false) - local headings = {} - - for lnum, line in ipairs(lines) do - local heading = line:match('^(#+%s+.+)$') - if heading then - table.insert(headings, { - lnum = lnum, - text = heading, - display = string.format("%4d: %s", lnum, heading) - }) - end - end - pickers.new({}, { - prompt_title = 'Markdown Headings', - finder = finders.new_table { - results = headings, - entry_maker = function(entry) - return { - value = entry, - display = entry.display, - ordinal = entry.text, - lnum = entry.lnum, - } - end - }, - sorter = conf.generic_sorter({}), - attach_mappings = function(prompt_bufnr, map) - actions.select_default:replace(function() - actions.close(prompt_bufnr) - local selection = action_state.get_selected_entry() - vim.api.nvim_win_set_cursor(0, { selection.value.lnum, 0 }) - end) - return true - end, - }):find() -end - -keymap.set("n", "fdh", markdown_headings, { desc = "Grep: Markdown headings" }) -keymap.set("n", "icd", formatted_date, { desc = "Insert current date" }) -keymap.set("n", "ict", formatted_datetime, { desc = "Insert current datetime" }) -keymap.set("n", "ocf", open_file_under_cursor , { desc = "Open file under cursor" }) +-- local pickers = require("telescope.pickers") +-- local finders = require("telescope.finders") +-- local conf = require("telescope.config").values +-- local actions = require("telescope.actions") +-- local action_state = require("telescope.actions.state") +-- +-- local function markdown_headings() +-- local bufnr = vim.api.nvim_get_current_buf() +-- local lines = vim.api.nvim_buf_get_lines(bufnr, 0, -1, false) +-- local headings = {} +-- +-- for lnum, line in ipairs(lines) do +-- local heading = line:match('^(#+%s+.+)$') +-- if heading then +-- table.insert(headings, { +-- lnum = lnum, +-- text = heading, +-- display = string.format("%4d: %s", lnum, heading) +-- }) +-- end +-- end +-- pickers.new({}, { +-- prompt_title = 'Markdown Headings', +-- finder = finders.new_table { +-- results = headings, +-- entry_maker = function(entry) +-- return { +-- value = entry, +-- display = entry.display, +-- ordinal = entry.text, +-- lnum = entry.lnum, +-- } +-- end +-- }, +-- sorter = conf.generic_sorter({}), +-- attach_mappings = function(prompt_bufnr, map) +-- actions.select_default:replace(function() +-- actions.close(prompt_bufnr) +-- local selection = action_state.get_selected_entry() +-- vim.api.nvim_win_set_cursor(0, { selection.value.lnum, 0 }) +-- end) +-- return true +-- end, +-- }):find() +-- end +-- +-- keymap.set("n", "fdh", markdown_headings, { desc = "Grep: Markdown headings" })