diff --git a/Dockerfile b/Dockerfile index 94adef7..9936d76 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,6 +26,7 @@ ARG NVIM_ARCH ARG NVIM_ARCH2 ARG NVIM_OS ARG NV_DARCULA_ENABLE_COC +ARG TREE_SITTER_VERSION=0.26.13 ENV \ GID="1000" \ @@ -132,8 +133,15 @@ RUN \ npm i -g js-beautify && \ npm i -g lua-fmt && \ npm i -g neovim && \ - npm i -g npm && \ - npm i -g tree-sitter-cli + npm i -g npm + +RUN \ + curl -fsSL \ + "https://github.com/tree-sitter/tree-sitter/releases/download/v${TREE_SITTER_VERSION}/tree-sitter-linux-${NVIM_ARCH2}.gz" \ + -o /tmp/tree-sitter.gz && \ + gzip -d /tmp/tree-sitter.gz && \ + install -m 0755 /tmp/tree-sitter /usr/local/bin/tree-sitter && \ + tree-sitter --version RUN \ python3 -m venv /python && \ @@ -166,7 +174,10 @@ RUN \ npx webpack --mode production RUN \ - nvim --headless "+qall" + nvim --headless -i NONE \ + --cmd "let v:errmsg = ''" \ + "+lua if vim.g.colors_name ~= NV_DARCULA_COLOR_SCHEME then vim.v.errmsg = 'failed to load colorscheme: ' .. tostring(NV_DARCULA_COLOR_SCHEME) end" \ + "+lua if vim.v.errmsg ~= '' then vim.api.nvim_err_writeln(vim.v.errmsg); vim.cmd('cquit') else vim.cmd('qall') end" RUN \ if [ "$NV_DARCULA_ENABLE_COC" = "true" ]; then \ @@ -245,7 +256,10 @@ RUN \ flutter pub global activate dart_style RUN \ - nvim --headless "+MasonToolsInstallSync" "+qall" + nvim --headless -i NONE \ + --cmd "let v:errmsg = ''" \ + "+MasonToolsInstallSync" \ + "+lua if vim.v.errmsg ~= '' then vim.api.nvim_err_writeln(vim.v.errmsg); vim.cmd('cquit') else vim.cmd('qall') end" ENTRYPOINT ["/entrypoint.sh"] diff --git a/dviml_common.sh b/dviml_common.sh index b68b25f..886ffcd 100755 --- a/dviml_common.sh +++ b/dviml_common.sh @@ -25,6 +25,7 @@ APP_DIR="${HOME}/.nv_darcula/${NVIM_APPNAME}" APP_PERSIST_DIR="${APP_DIR}/persist" mkdir -p "${APP_PERSIST_DIR}/cache" +mkdir -p "${APP_PERSIST_DIR}/codex" mkdir -p "${APP_PERSIST_DIR}/kiro/kiro" mkdir -p "${APP_PERSIST_DIR}/kiro/kiro-cli" mkdir -p "${APP_PERSIST_DIR}/nvim-haven" @@ -74,8 +75,10 @@ fi docker run --rm -it \ --device /dev/fuse \ --privileged=true \ + -e TERM="$TERM" \ -v "${CURRENT_DIR}":"${WORKSPACE_DIR}" \ -v "${APP_PERSIST_DIR}/cache":/home/neovim/.cache:z \ + -v "${APP_PERSIST_DIR}/codex":/home/neovim/.codex:z \ -v "${APP_PERSIST_DIR}/kiro/kiro":/home/neovim/.kiro:z \ -v "${APP_PERSIST_DIR}/kiro/kiro-cli":/home/neovim/.local/share/kiro-cli:z \ -v "${APP_PERSIST_DIR}/nvim-haven":/home/neovim/.local/share/nvim/nvim-haven:z \ diff --git a/nvim/lua/darcula/plugins.lua b/nvim/lua/darcula/plugins.lua index a66407f..6f23487 100644 --- a/nvim/lua/darcula/plugins.lua +++ b/nvim/lua/darcula/plugins.lua @@ -19,6 +19,8 @@ -- require("darcula.config") +local M = {} + -- The colorscheme is loaded from this module, before darcula.options. vim.opt.termguicolors = NV_DARCULA_TERMGUI_COLORS @@ -116,6 +118,12 @@ vim.list_extend( } ) -vim.pack.add(packages, {confirm = false}) +function M.install() + vim.pack.add(packages, {confirm = false}) +end + +M.install() vim.cmd("colorscheme " .. NV_DARCULA_COLOR_SCHEME) + +return M diff --git a/nvim/lua/darcula/usercmds.lua b/nvim/lua/darcula/usercmds.lua index 1b5f235..f52cd48 100644 --- a/nvim/lua/darcula/usercmds.lua +++ b/nvim/lua/darcula/usercmds.lua @@ -27,6 +27,14 @@ vim.cmd( ]] ) +vim.api.nvim_create_user_command( + "PlugInstall", + function() + require("darcula.plugins").install() + end, + {} +) + vim.api.nvim_create_user_command( "PlugUpdate", function()