chore: combined (actions/utils.lua).create with (actions/init.lua).create_project
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
local M = {}
|
||||
|
||||
local action_utils = require("vern-nvim.actions.utils")
|
||||
local utils = require("vern-nvim.utils")
|
||||
local templates = require("vern-nvim.templates")
|
||||
|
||||
@@ -26,7 +25,47 @@ M.create_project = function(opts)
|
||||
end
|
||||
local root =
|
||||
vim.fs.joinpath(vim.fn.expand(args.workspace_root), args[ft].root, pname)
|
||||
local bin = action_utils.create(args[ft], args.env.author, pname, root)
|
||||
|
||||
local ctx = {
|
||||
project_name = pname,
|
||||
company_name = args.env.author,
|
||||
file_name = "",
|
||||
}
|
||||
|
||||
vim.fn.mkdir(root, "p")
|
||||
|
||||
for _, dir in pairs(args[ft].dirs) do
|
||||
local path = vim.fs.normalize(vim.fs.joinpath(root, utils.fmt(dir, ctx)))
|
||||
vim.fn.mkdir(path, "p")
|
||||
end
|
||||
|
||||
local bin
|
||||
for tbl_name, tbl in pairs(args[ft].templates.project) do
|
||||
local raw_path = vim.fs.joinpath(tbl.path, tbl.name)
|
||||
local path = utils.resolve_path(raw_path, args[ft].dirs, ctx)
|
||||
if tbl_name == "primary" then
|
||||
bin = vim.fs.joinpath(root, path)
|
||||
end
|
||||
local abs_file_path = vim.fs.normalize(vim.fs.joinpath(root, path))
|
||||
local abs_dir_path = vim.fs.dirname(abs_file_path)
|
||||
if abs_dir_path ~= root and not vim.startswith(root, abs_dir_path) then
|
||||
vim.fn.mkdir(abs_dir_path, "p")
|
||||
end
|
||||
utils.dump(abs_file_path, templates.fetch(tbl.kind_path, tbl.kind, ctx))
|
||||
end
|
||||
for _, tbl in pairs(args[ft].templates.extras) do
|
||||
if tbl.enabled then
|
||||
local raw_path = vim.fs.joinpath(tbl.path, tbl.name)
|
||||
local path = utils.resolve_path(raw_path, args[ft].dirs, ctx)
|
||||
local abs_file_path = vim.fs.normalize(vim.fs.joinpath(root, path))
|
||||
local abs_dir_path = vim.fs.dirname(abs_file_path)
|
||||
if abs_dir_path ~= root and not vim.startswith(root, abs_dir_path) then
|
||||
vim.fn.mkdir(abs_dir_path, "p")
|
||||
end
|
||||
utils.dump(abs_file_path, templates.fetch(tbl.kind_path, tbl.kind, ctx))
|
||||
end
|
||||
end
|
||||
|
||||
utils.init_git(root, ft)
|
||||
utils.init_readme(root)
|
||||
if ok and actions and type(actions.create_project) == "function" then
|
||||
@@ -85,7 +124,7 @@ M.create_file = function(opts)
|
||||
vim.fs.joinpath(root, path),
|
||||
templates.fetch(mod.kind_path, mod.kind, context)
|
||||
)
|
||||
vim.cmd.edit(vim.fn.expand(path))
|
||||
vim.cmd.edit(vim.fn.fnameescape(path))
|
||||
vim.notify(fname .. " has been created!", vim.log.levels.INFO, { title = "Vern File" })
|
||||
end)
|
||||
end)
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
local M = {}
|
||||
|
||||
local utils = require("vern-nvim.utils")
|
||||
local templates = require("vern-nvim.templates")
|
||||
|
||||
---@param cfg table Language config
|
||||
---@param author string Author of project
|
||||
---@param pname string Name of project
|
||||
---@param root string Project location
|
||||
---@return string bin Location of executable
|
||||
function M.create(cfg, author, pname, root)
|
||||
local ctx = {
|
||||
project_name = pname,
|
||||
company_name = author,
|
||||
file_name = "",
|
||||
}
|
||||
|
||||
vim.fn.mkdir(root, "p")
|
||||
|
||||
for _, dir in pairs(cfg.dirs) do
|
||||
local path = vim.fs.normalize(vim.fs.joinpath(root, utils.fmt(dir, ctx)))
|
||||
vim.fn.mkdir(path, "p")
|
||||
end
|
||||
|
||||
local bin
|
||||
for tbl_name, tbl in pairs(cfg.templates.project) do
|
||||
local raw_path = vim.fs.joinpath(tbl.path, tbl.name)
|
||||
local path = utils.resolve_path(raw_path, cfg.dirs, ctx)
|
||||
if tbl_name == "primary" then
|
||||
bin = vim.fs.joinpath(root, path)
|
||||
end
|
||||
local abs_file_path = vim.fs.normalize(vim.fs.joinpath(root, path))
|
||||
local abs_dir_path = vim.fs.dirname(abs_file_path)
|
||||
if abs_dir_path ~= root and not vim.startswith(root, abs_dir_path) then
|
||||
vim.fn.mkdir(abs_dir_path, "p")
|
||||
end
|
||||
utils.dump(abs_file_path, templates.fetch(tbl.kind_path, tbl.kind, ctx))
|
||||
end
|
||||
for _, tbl in pairs(cfg.templates.extras) do
|
||||
if tbl.enabled then
|
||||
local raw_path = vim.fs.joinpath(tbl.path, tbl.name)
|
||||
local path = utils.resolve_path(raw_path, cfg.dirs, ctx)
|
||||
local abs_file_path = vim.fs.normalize(vim.fs.joinpath(root, path))
|
||||
local abs_dir_path = vim.fs.dirname(abs_file_path)
|
||||
if abs_dir_path ~= root and not vim.startswith(root, abs_dir_path) then
|
||||
vim.fn.mkdir(abs_dir_path, "p")
|
||||
end
|
||||
utils.dump(abs_file_path, templates.fetch(tbl.kind_path, tbl.kind, ctx))
|
||||
end
|
||||
end
|
||||
|
||||
return bin
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -6,7 +6,7 @@ M.attach = function() end
|
||||
M.java = {
|
||||
root = "Java",
|
||||
dirs = {
|
||||
src = "src/com/company/app",
|
||||
src = "src/com/{company_name}/{project_name}",
|
||||
bin = "bin",
|
||||
},
|
||||
keybinds = {
|
||||
@@ -35,7 +35,7 @@ M.java = {
|
||||
source = {
|
||||
path = "{dirs.src}",
|
||||
name = "{file_name}.java",
|
||||
kind = "module",
|
||||
kind = "source",
|
||||
kind_path = "vern-nvim.templates.java",
|
||||
},
|
||||
},
|
||||
|
||||
@@ -36,6 +36,12 @@ build/
|
||||
lua = vim.trim([=[
|
||||
luac.out
|
||||
]=]),
|
||||
|
||||
java = vim.trim([=[
|
||||
bin/
|
||||
*.class
|
||||
*.jar
|
||||
]=]),
|
||||
}
|
||||
|
||||
local extra = (lang and lang_block[lang]) or ""
|
||||
|
||||
@@ -45,8 +45,9 @@ IncludeBlocks: Preserve
|
||||
Target: src/com/company/app/{name}.java
|
||||
===================================================================== --]]
|
||||
source = vim.trim([=[
|
||||
package com.__COMPANY_NAME__.__PROJECT_NAME__;
|
||||
|
||||
public class __FILE_NAME__ {
|
||||
package com.__COMPANY_NAME__.__PROJECT_NAME__;
|
||||
|
||||
// Fields / Attributes
|
||||
private String data;
|
||||
|
||||
Reference in New Issue
Block a user