Skip to content

Commit 7aedbde

Browse files
Add debug logs around latex converter executable
# Details Adds a debug statement around whether latex executable can be found or not. Make the executable used configurable, because why not. Other minor changes: - Remove neoconf, not needed after moving to lazydev - Add test.md to .gitignore, for use when testing problems - Add nil checkout around treesitter highlight module - Avoid vim.inspect when logging strings since double quotes make things look worse in this case - Log language as a string instead of a table
1 parent 43ba268 commit 7aedbde

File tree

9 files changed

+25
-14
lines changed

9 files changed

+25
-14
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
large.md
2+
test.md

.neoconf.json

Lines changed: 0 additions & 9 deletions
This file was deleted.

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ require('render-markdown').setup({
108108
109109
(shortcut_link) @callout
110110
]],
111+
-- Executable used to convert latex formula to rendered unicode
112+
latex_converter = 'latex2text',
111113
-- The level of logs to write to file: vim.fn.stdpath('state') .. '/render-markdown.log'
112114
-- Only intended to be used for plugin development / debugging
113115
log_level = 'error',

lua/render-markdown/handler/latex.lua

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,20 @@ local M = {}
1515
---@param root TSNode
1616
---@param buf integer
1717
M.render = function(namespace, root, buf)
18-
if vim.fn.executable('latex2text') ~= 1 then
18+
local converter = state.config.latex_converter
19+
if vim.fn.executable(converter) ~= 1 then
20+
logger.debug('Executable not found: ' .. converter)
1921
return
2022
end
23+
logger.debug('Executable found: ' .. converter)
2124

2225
local value = vim.treesitter.get_node_text(root, buf)
2326
local start_row, start_col, end_row, end_col = root:range()
2427
logger.debug_node('latex', root, buf)
2528

2629
local expressions = cache.expressions[value]
2730
if expressions == nil then
28-
local raw_expression = vim.fn.system('latex2text', value)
31+
local raw_expression = vim.fn.system(converter, value)
2932
local parsed_expressions = vim.split(vim.trim(raw_expression), '\n', { plain = true })
3033
expressions = vim.tbl_map(vim.trim, parsed_expressions)
3134
cache.expressions[value] = expressions

lua/render-markdown/health.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ local function validate_treesitter()
1818
end
1919

2020
local highlight = require('nvim-treesitter.configs').get_module('highlight')
21-
if highlight.enable then
21+
if highlight ~= nil and highlight.enable then
2222
vim.health.ok('treesitter highlights enabled')
2323
else
2424
vim.health.error('treesitter highlights not enabled')

lua/render-markdown/init.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ local M = {}
5050
---@field public max_file_size? number
5151
---@field public markdown_query? string
5252
---@field public inline_query? string
53+
---@field public latex_converter? string
5354
---@field public log_level? 'debug'|'error'
5455
---@field public file_types? string[]
5556
---@field public render_modes? string[]
@@ -109,6 +110,8 @@ M.default_config = {
109110
110111
(shortcut_link) @callout
111112
]],
113+
-- Executable used to convert latex formula to rendered unicode
114+
latex_converter = 'latex2text',
112115
-- The level of logs to write to file: vim.fn.stdpath('state') .. '/render-markdown.log'
113116
-- Only intended to be used for plugin development / debugging
114117
log_level = 'error',

lua/render-markdown/logger.lua

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@ local state = require('render-markdown.state')
33
-- Typically resolves to ~/.local/state/nvim/render-markdown.log
44
local log_file = vim.fn.stdpath('state') .. '/render-markdown.log'
55

6+
---@param message any
7+
---@return string
8+
local function convert_message(message)
9+
if type(message) == 'string' then
10+
return message
11+
else
12+
return vim.inspect(message)
13+
end
14+
end
15+
616
---@class render.md.LogEntry
717
---@field date string
818
---@field level string
@@ -26,7 +36,7 @@ log.add = function(level, message)
2636
---@diagnostic disable-next-line: assign-type-mismatch
2737
date = os.date('%Y-%m-%d %H:%M:%S'),
2838
level = string.upper(level),
29-
message = vim.inspect(message),
39+
message = convert_message(message),
3040
}
3141
table.insert(log.entries, entry)
3242
end

lua/render-markdown/types.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
---@field public max_file_size number
3838
---@field public markdown_query string
3939
---@field public inline_query string
40+
---@field public latex_converter string
4041
---@field public log_level 'debug'|'error'
4142
---@field public file_types string[]
4243
---@field public render_modes string[]

lua/render-markdown/ui.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ M.refresh = function(buf)
3333
parser:parse(true)
3434
parser:for_each_tree(function(tree, language_tree)
3535
local language = language_tree:lang()
36-
logger.debug({ language = language })
36+
logger.debug('language: ' .. language)
3737
local user_handler = state.config.custom_handlers[language]
3838
if user_handler == nil then
3939
if language == 'markdown' then

0 commit comments

Comments
 (0)