Compare commits
2 commits
3c59ab0b61
...
4d048aecd8
Author | SHA1 | Date | |
---|---|---|---|
4d048aecd8 | |||
ebf4274c5b |
2 changed files with 66 additions and 0 deletions
|
@ -130,6 +130,9 @@ map.n.nore['<leader>S'] =
|
||||||
[[:lua require 'telescope.builtin'.oldfiles(require 'telescope.themes'.get_ivy())<cr>]]
|
[[:lua require 'telescope.builtin'.oldfiles(require 'telescope.themes'.get_ivy())<cr>]]
|
||||||
-- fuzzy find files in cwd
|
-- fuzzy find files in cwd
|
||||||
map.n.nore['<leader>f'] = [[:lua require 'telescope.builtin'.find_files()<cr>]]
|
map.n.nore['<leader>f'] = [[:lua require 'telescope.builtin'.find_files()<cr>]]
|
||||||
|
-- fuzzy find hidden files in cwd
|
||||||
|
map.n.nore['<leader><c-f>'] =
|
||||||
|
[[:lua require 'telescope.builtin'.find_files({hidden=true})<cr>]]
|
||||||
-- general full-text search in cwd with rg
|
-- general full-text search in cwd with rg
|
||||||
map.n.nore['<leader>F'] = [[:lua require 'telescope.builtin'.live_grep()<cr>]]
|
map.n.nore['<leader>F'] = [[:lua require 'telescope.builtin'.live_grep()<cr>]]
|
||||||
|
|
||||||
|
|
63
nvim/.config/nvim/lua/personal/openpdf.lua
Normal file
63
nvim/.config/nvim/lua/personal/openpdf.lua
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
-- will open the pdf file for whatever file i am currently viewing.
|
||||||
|
-- POC only and only useful in a ALMP context for now.
|
||||||
|
local fn = vim.fn
|
||||||
|
|
||||||
|
local function isDirectory(ftype)
|
||||||
|
if ftype == 'directory' then return true end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local function isFile(ftype)
|
||||||
|
if ftype == 'file' then return true end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local function cleanPath(path)
|
||||||
|
if path:match("^~") then path = os.getenv("HOME") .. path:sub(2) end
|
||||||
|
return path
|
||||||
|
end
|
||||||
|
-- Returns a set of all files at the target directory, as well
|
||||||
|
-- as subdirectories if the recursive argument is set to true.
|
||||||
|
-- Set has the form { "full/path/name.md" = "name.md" }
|
||||||
|
local function get_all_files(path, recursive)
|
||||||
|
local f = {}
|
||||||
|
path = cleanPath(path)
|
||||||
|
|
||||||
|
local handle = vim.loop.fs_scandir(path)
|
||||||
|
while handle do
|
||||||
|
local name, ftype = vim.loop.fs_scandir_next(handle)
|
||||||
|
if not name then break end
|
||||||
|
|
||||||
|
if isDirectory(ftype) and recursive then
|
||||||
|
local subdir = get_all_files(path .. "/" .. name, true)
|
||||||
|
for k, v in pairs(subdir) do f[tostring(k)] = v end
|
||||||
|
end
|
||||||
|
|
||||||
|
if isFile(ftype) then f[tostring(path .. "/" .. name)] = name end
|
||||||
|
end
|
||||||
|
|
||||||
|
return f
|
||||||
|
end
|
||||||
|
|
||||||
|
local function get_basename()
|
||||||
|
local name = fn.expand("%:t")
|
||||||
|
return string.gsub(name, ".md", "")
|
||||||
|
end
|
||||||
|
|
||||||
|
local function find_pdf(dir, bibkey)
|
||||||
|
local pdfs = get_all_files(dir)
|
||||||
|
for k, v in pairs(pdfs) do if v:find(bibkey, 0, true) then return k end end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function open_pdf(name) fn.jobstart("zathura '" .. name .. "'") end
|
||||||
|
|
||||||
|
local function openCurrentPdf()
|
||||||
|
local fname = get_basename()
|
||||||
|
local pdf_path = find_pdf(
|
||||||
|
"/home/marty/projects/jobs/almp/output/Literature",
|
||||||
|
fname)
|
||||||
|
print(pdf_path)
|
||||||
|
open_pdf(pdf_path)
|
||||||
|
end
|
||||||
|
|
||||||
|
return {open = openCurrentPdf}
|
Loading…
Reference in a new issue