chore: combined (actions/utils.lua).create with (actions/init.lua).create_project
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
local action_utils = require("vern-nvim.actions.utils")
|
|
||||||
local utils = require("vern-nvim.utils")
|
local utils = require("vern-nvim.utils")
|
||||||
local templates = require("vern-nvim.templates")
|
local templates = require("vern-nvim.templates")
|
||||||
|
|
||||||
@@ -26,7 +25,47 @@ M.create_project = function(opts)
|
|||||||
end
|
end
|
||||||
local root =
|
local root =
|
||||||
vim.fs.joinpath(vim.fn.expand(args.workspace_root), args[ft].root, pname)
|
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_git(root, ft)
|
||||||
utils.init_readme(root)
|
utils.init_readme(root)
|
||||||
if ok and actions and type(actions.create_project) == "function" then
|
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),
|
vim.fs.joinpath(root, path),
|
||||||
templates.fetch(mod.kind_path, mod.kind, context)
|
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" })
|
vim.notify(fname .. " has been created!", vim.log.levels.INFO, { title = "Vern File" })
|
||||||
end)
|
end)
|
||||||
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 = {
|
M.java = {
|
||||||
root = "Java",
|
root = "Java",
|
||||||
dirs = {
|
dirs = {
|
||||||
src = "src/com/company/app",
|
src = "src/com/{company_name}/{project_name}",
|
||||||
bin = "bin",
|
bin = "bin",
|
||||||
},
|
},
|
||||||
keybinds = {
|
keybinds = {
|
||||||
@@ -35,7 +35,7 @@ M.java = {
|
|||||||
source = {
|
source = {
|
||||||
path = "{dirs.src}",
|
path = "{dirs.src}",
|
||||||
name = "{file_name}.java",
|
name = "{file_name}.java",
|
||||||
kind = "module",
|
kind = "source",
|
||||||
kind_path = "vern-nvim.templates.java",
|
kind_path = "vern-nvim.templates.java",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -36,6 +36,12 @@ build/
|
|||||||
lua = vim.trim([=[
|
lua = vim.trim([=[
|
||||||
luac.out
|
luac.out
|
||||||
]=]),
|
]=]),
|
||||||
|
|
||||||
|
java = vim.trim([=[
|
||||||
|
bin/
|
||||||
|
*.class
|
||||||
|
*.jar
|
||||||
|
]=]),
|
||||||
}
|
}
|
||||||
|
|
||||||
local extra = (lang and lang_block[lang]) or ""
|
local extra = (lang and lang_block[lang]) or ""
|
||||||
|
|||||||
@@ -45,8 +45,9 @@ IncludeBlocks: Preserve
|
|||||||
Target: src/com/company/app/{name}.java
|
Target: src/com/company/app/{name}.java
|
||||||
===================================================================== --]]
|
===================================================================== --]]
|
||||||
source = vim.trim([=[
|
source = vim.trim([=[
|
||||||
|
package com.__COMPANY_NAME__.__PROJECT_NAME__;
|
||||||
|
|
||||||
public class __FILE_NAME__ {
|
public class __FILE_NAME__ {
|
||||||
package com.__COMPANY_NAME__.__PROJECT_NAME__;
|
|
||||||
|
|
||||||
// Fields / Attributes
|
// Fields / Attributes
|
||||||
private String data;
|
private String data;
|
||||||
|
|||||||
Reference in New Issue
Block a user