require('core.snippets.shorthands') require('core.snippets.functions') 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({ "", "}" }), }), s("main", { t({ "public static void main(String[] args) {", "\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 "), t("") }), c(2, { t("class "), t("interface ") }), c(3, { i(0, "MyClass"), f(file_name, {}) }), c(4, { 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({"", "}"}) }) }) }) }