From 43cc9ba1bd2d6204b96227ca1cca436b993bd300 Mon Sep 17 00:00:00 2001 From: Anton Volnuhin Date: Tue, 3 Mar 2026 19:33:16 +0300 Subject: [PATCH] fix neovim headless output: strip ANSI colors, fix MasonUpdate error - Strip ANSI escape codes from nvim headless output via sed so non-interactive mode shows clean text instead of raw color codes - Change mason.nvim build hook from ":MasonUpdate" string to pcall() function to prevent E492 error on first install when Mason isn't loaded yet Co-Authored-By: Claude Opus 4.6 --- private_dot_config/nvim/init.lua | 2 +- run_onchange_after_install_main_deps.sh.tmpl | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/private_dot_config/nvim/init.lua b/private_dot_config/nvim/init.lua index 87682eb..503dd0e 100644 --- a/private_dot_config/nvim/init.lua +++ b/private_dot_config/nvim/init.lua @@ -63,7 +63,7 @@ require("lazy").setup({ { "jiaoshijie/undotree" }, { "williamboman/mason.nvim", - build = ":MasonUpdate", -- :MasonUpdate updates registry contents + build = function() pcall(vim.cmd, "MasonUpdate") end, }, { "folke/which-key.nvim", diff --git a/run_onchange_after_install_main_deps.sh.tmpl b/run_onchange_after_install_main_deps.sh.tmpl index e93e60a..30768f0 100644 --- a/run_onchange_after_install_main_deps.sh.tmpl +++ b/run_onchange_after_install_main_deps.sh.tmpl @@ -444,11 +444,11 @@ cat ~/.ssh/authorized_keys.old <(echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPdqI if [ "$SKIP_NVIM_BOOTSTRAP" -eq 0 ]; then new_line "Waiting for neovim plugins and lsm compilations..." -${TIMEOUT_BIN:+$TIMEOUT_BIN 120s} nvim --headless -c "sleep 1" -c ":Lazy! sync" -c "sleep 10" -c "qa" 2>&1|pad -${TIMEOUT_BIN:+$TIMEOUT_BIN 120s} nvim --headless -c "sleep 1" -c ":lua pcall(vim.cmd, 'MasonUpdate')" -c "sleep 5" -c "qa" 2>&1|pad -${TIMEOUT_BIN:+$TIMEOUT_BIN 120s} nvim --headless -c "sleep 1" -c ":lua pcall(vim.cmd, 'MasonInstall lua-language-server')" -c "sleep 5" -c "qa" 2>&1|pad -${TIMEOUT_BIN:+$TIMEOUT_BIN 120s} nvim --headless -c "sleep 1" -c ":lua pcall(vim.cmd, 'MasonInstall rust-analyzer')" -c "sleep 5" -c "qa" 2>&1|pad -${TIMEOUT_BIN:+$TIMEOUT_BIN 120s} nvim --headless -c "sleep 1" -c ":TSUpdate" -c "sleep 5" -c "qa" 2>&1|pad +${TIMEOUT_BIN:+$TIMEOUT_BIN 120s} nvim --headless -c "sleep 1" -c ":Lazy! sync" -c "sleep 10" -c "qa" 2>&1 | sed 's/\x1b\[[0-9;]*m//g' |pad +${TIMEOUT_BIN:+$TIMEOUT_BIN 120s} nvim --headless -c "sleep 1" -c ":lua pcall(vim.cmd, 'MasonUpdate')" -c "sleep 5" -c "qa" 2>&1 | sed 's/\x1b\[[0-9;]*m//g' |pad +${TIMEOUT_BIN:+$TIMEOUT_BIN 120s} nvim --headless -c "sleep 1" -c ":lua pcall(vim.cmd, 'MasonInstall lua-language-server')" -c "sleep 5" -c "qa" 2>&1 | sed 's/\x1b\[[0-9;]*m//g' |pad +${TIMEOUT_BIN:+$TIMEOUT_BIN 120s} nvim --headless -c "sleep 1" -c ":lua pcall(vim.cmd, 'MasonInstall rust-analyzer')" -c "sleep 5" -c "qa" 2>&1 | sed 's/\x1b\[[0-9;]*m//g' |pad +${TIMEOUT_BIN:+$TIMEOUT_BIN 120s} nvim --headless -c "sleep 1" -c ":TSUpdate" -c "sleep 5" -c "qa" 2>&1 | sed 's/\x1b\[[0-9;]*m//g' |pad fi {{ if eq .chezmoi.os "linux" -}}