Files
nvim/lua/snippets/java.lua

111 lines
1.9 KiB
Lua

require('core.snippets.shorthands')
local function file_name(args, parent, user_args)
return vim.fn.expand("%:t:r")
end
return {
-- method snippet
s("fn", {
c(1, {
t("public "),
t("private "),
}),
c(2, {
t("void"),
t("String"),
t("char"),
t("int"),
t("double"),
t("boolean"),
i(nil, "myType"),
}),
t(" "),
i(3, "myFunc"),
t("("),
i(4),
t(")"),
c(5, {
t(""),
sn(nil, {t({ "", " throws " }), i(1)}),
}),
t({ " {", "\t" }),
i(0),
t({ "", "}" }),
}),
-- constructor snippet
s("constr", {
c(1, {
t("public "),
t("private "),
t("protected ")
}),
f(file_name, {}),
t("("),
i(2),
t(")"),
c(3, {
t(""),
sn(nil, {t({ "", " throws " }), i(1)}),
}),
t({ " {", "\t" }),
i(0),
t({ "", "}" }),
}),
-- class snippet
s("class", {
c(1, {
t("public "),
t("private "),
t("protected ")
}),
c(2, {
t("class "),
t("interface ")
}),
f(file_name, {}),
c(3, {
t(" "),
sn(nil, { t({" implements "}), i(1), t(" ") }),
sn(nil, { t({" extends "}), i(1), t(" ") }),
}),
t({ "{", "\t" }),
i(0),
t({ "", "}" }),
}),
-- pacakge snippet
s("package", {
t("package "),
f(function(args, parent, user_args)
-- get path
local dir = vim.fn.expand("%:h")
-- remove prefix
dir = dir:gsub("src/main/java/", "")
-- convert to package path
dir = dir:gsub("/", ".")
return dir
end, {}),
t(";"),
t({ "", "", "" })
}),
-- try, catch, finally snippet
s("try", {
t({"try {", "\t"}),
i(1),
t({"", "} catch ("}),
i(2, "Error e"),
t({") {", "\t"}),
i(3),
t({"", "}"}),
c(4, {
t(""),
sn(nil, { t({" finally {", "\t"}), i(1), t({"", "}"}) })
})
})
}