From 6997d9e5373b950c1f506e7c4eb63e9a1422965a Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Wed, 25 May 2022 17:45:38 +0200 Subject: [PATCH] Add npm run --- .../nvim.ln/lua/build/adapters/dotnet.lua | 6 ++--- .../config/nvim.ln/lua/build/adapters/npm.lua | 26 +++++++++++++++++++ nvim/nvim/config/nvim.ln/lua/build/init.lua | 25 +++++++++--------- .../nvim.ln/lua/treesitter/treesitter.lua | 5 +++- toto.scala | 3 +++ 5 files changed, 49 insertions(+), 16 deletions(-) create mode 100644 nvim/nvim/config/nvim.ln/lua/build/adapters/npm.lua create mode 100644 toto.scala diff --git a/nvim/nvim/config/nvim.ln/lua/build/adapters/dotnet.lua b/nvim/nvim/config/nvim.ln/lua/build/adapters/dotnet.lua index 5a4fa42..c946b41 100644 --- a/nvim/nvim/config/nvim.ln/lua/build/adapters/dotnet.lua +++ b/nvim/nvim/config/nvim.ln/lua/build/adapters/dotnet.lua @@ -18,7 +18,7 @@ M.list = function() end table.insert(ret, { name = proj:match("([^/]+).csproj$"), - csproj = proj, + file = proj, icon = "", }) end, @@ -36,7 +36,7 @@ M.build = function(proj) return Job:new({ command = "dotnet", - args = { "build", proj.csproj }, + args = { "build", proj.file }, on_stdout = vim.schedule_wrap(add_to_qf), on_stderr = vim.schedule_wrap(add_to_qf), }) @@ -44,7 +44,7 @@ end M.run = function(proj) - return "dotnet run --project " .. proj.csproj + return "dotnet run --project " .. proj.file end M.require_build = false diff --git a/nvim/nvim/config/nvim.ln/lua/build/adapters/npm.lua b/nvim/nvim/config/nvim.ln/lua/build/adapters/npm.lua new file mode 100644 index 0000000..fa58be7 --- /dev/null +++ b/nvim/nvim/config/nvim.ln/lua/build/adapters/npm.lua @@ -0,0 +1,26 @@ +local M = {} + +M.patterns = { "**/package.json" } + +M.list = function(package) + return { + { + name = vim.fn.fnamemodify(package, ":h"), -- Use the name in the package.json + folder = vim.fn.fnamemodify(package, ":h"), + file = package, + } + } +end + +M.build = function() + return nil +end + + +M.run = function(proj) + return "cd " .. proj.folder .. " && npm start" +end + +M.require_build = false + +return M diff --git a/nvim/nvim/config/nvim.ln/lua/build/init.lua b/nvim/nvim/config/nvim.ln/lua/build/init.lua index 6314aa7..3c9ad3d 100644 --- a/nvim/nvim/config/nvim.ln/lua/build/init.lua +++ b/nvim/nvim/config/nvim.ln/lua/build/init.lua @@ -1,4 +1,5 @@ local has_icon, nwicon = pcall(require, 'nvim-web-devicons') +local scan = require 'plenary.scandir' local M = { adapters = {}, @@ -10,6 +11,7 @@ local M = { table.insert(M.adapters, require "build.adapters.dotnet") table.insert(M.adapters, require "build.adapters.docker-compose") +table.insert(M.adapters, require "build.adapters.npm") M.list_projs = function() local projs = {} @@ -17,21 +19,20 @@ M.list_projs = function() -- TODO: Use async methods here. (currently waiting for plenary async jobs) for _, adapter in pairs(M.adapters) do - for _, pattern in pairs(adapter.patterns) do - for _, match in pairs(vim.fn.glob(pattern, false, true)) do - for _, proj in pairs(adapter.list(match)) do - proj.adapter = adapter - proj.source = match - proj.icon = proj.icon or has_icon and nwicon.get_icon( - vim.fn.fnamemodify(proj.file, ':t'), - vim.fn.fnamemodify(proj.file, ':e'), - { default = true } - ) or " " - table.insert(projs, proj) - end + for _, match in pairs(scan.scan_dir(".", { search_pattern = adapter.patterns, respect_gitignore = true })) do + for _, proj in pairs(adapter.list(match)) do + proj.adapter = adapter + proj.source = match + proj.icon = proj.icon or has_icon and nwicon.get_icon( + vim.fn.fnamemodify(proj.file, ':t'), + vim.fn.fnamemodify(proj.file, ':e'), + { default = true } + ) or " " + table.insert(projs, proj) end end end + return projs end diff --git a/nvim/nvim/config/nvim.ln/lua/treesitter/treesitter.lua b/nvim/nvim/config/nvim.ln/lua/treesitter/treesitter.lua index 36f8ca2..f46993b 100644 --- a/nvim/nvim/config/nvim.ln/lua/treesitter/treesitter.lua +++ b/nvim/nvim/config/nvim.ln/lua/treesitter/treesitter.lua @@ -12,7 +12,10 @@ configs.setup({ }, indent = { enable = true, - disable = { "yaml" }, + disable = { + "yaml", + "json", + }, }, context_commentstring = { enable = true, diff --git a/toto.scala b/toto.scala new file mode 100644 index 0000000..0076612 --- /dev/null +++ b/toto.scala @@ -0,0 +1,3 @@ +12 + +println(12 * 1)