From d7a183d95b5e3fe9b34a4b17c5ba8bfa5a5d9f38 Mon Sep 17 00:00:00 2001 From: Max Hohlfeld Date: Tue, 18 Jul 2023 09:18:40 +0200 Subject: [PATCH 1/2] fix: open correct pdf file when previewing from nvim --- roles/nvim/files/lua/compileDoc.lua | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/roles/nvim/files/lua/compileDoc.lua b/roles/nvim/files/lua/compileDoc.lua index cd82271..e450caf 100644 --- a/roles/nvim/files/lua/compileDoc.lua +++ b/roles/nvim/files/lua/compileDoc.lua @@ -3,14 +3,20 @@ local M = {} local pdf_viewer_pid = 0 local compile = function(file) - vim.fn.jobstart({ "compiledoc", file }, { + return vim.fn.jobstart({ "compiledoc", file }, { on_exit = function() print("Finished compiling.") end }) end +local file_exists = function(name) + local f=io.open(name,"r") + if f~=nil then io.close(f) return true else return false end +end + + M.open_document_preview = function() local filename = vim.api.nvim_buf_get_name(0) - compile(filename) + local compile_job = compile(filename) vim.api.nvim_create_augroup("compileDoc", {}) @@ -21,6 +27,17 @@ M.open_document_preview = function() }) local pdf_filename = string.gsub(filename, "%..+$", ".pdf") + + vim.fn.jobwait({compile_job}) + + if not file_exists(pdf_filename) then + local scan = require'plenary.scandir' + local build_dir = scan.scan_dir({ '.', '..' }, { depth = 1, add_dirs = true, search_pattern = 'build' }) + local result = scan.scan_dir(build_dir[1], { depth = 3, search_pattern = ".*%.pdf" }) + + pdf_filename = result[1] + end + pdf_viewer_pid = vim.fn.jobstart({ "zathura", pdf_filename }) end From 736ad6490461e72a7fc66ce6b6b1966cafcb02ff Mon Sep 17 00:00:00 2001 From: Max Hohlfeld Date: Wed, 26 Jul 2023 13:01:21 +0200 Subject: [PATCH 2/2] feat: improve compiledoc --- roles/nvim/files/init_pc.lua | 4 ++-- roles/nvim/files/lua/compileDoc.lua | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/roles/nvim/files/init_pc.lua b/roles/nvim/files/init_pc.lua index b3570c6..771f695 100644 --- a/roles/nvim/files/init_pc.lua +++ b/roles/nvim/files/init_pc.lua @@ -353,8 +353,8 @@ require('lir').setup { ['h'] = actions.up, ['q'] = actions.quit, - ['K'] = actions.mkdir, - ['N'] = actions.newfile, + ['nd'] = actions.mkdir, + ['nf'] = actions.newfile, ['R'] = actions.rename, ['@'] = actions.cd, ['Y'] = actions.yank_path, diff --git a/roles/nvim/files/lua/compileDoc.lua b/roles/nvim/files/lua/compileDoc.lua index e450caf..5d1f3b6 100644 --- a/roles/nvim/files/lua/compileDoc.lua +++ b/roles/nvim/files/lua/compileDoc.lua @@ -4,7 +4,9 @@ local pdf_viewer_pid = 0 local compile = function(file) return vim.fn.jobstart({ "compiledoc", file }, { - on_exit = function() print("Finished compiling.") end + on_exit = function(_, exit_code) if exit_code == 0 then print("Finished compiling.") end end, + on_stderr = function(_, err, _) print(table.concat(err, "\n")) end, + stderr_buffered = true }) end