Skip to content

Commit

Permalink
chore: various improvements, optimization and fixes
Browse files Browse the repository at this point in the history
- add some snippets
  • Loading branch information
kevinm6 committed Jan 4, 2025
1 parent de5e01a commit ee59394
Show file tree
Hide file tree
Showing 11 changed files with 455 additions and 34 deletions.
1 change: 1 addition & 0 deletions after/ftplugin/java.lua
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ extendedClientCapabilities.resolveAdditionalTextEditsSupport = true
extendedClientCapabilities.document_formatting = false

local root_dir = vim.fs.root(0, { ".git", "mvnw", "gradlew", "pom.xml" })
or vim.fs.dirname(vim.api.nvim_buf_get_name(0))
local cache_dir = vim.fn.stdpath "cache"
local project_name = vim.fs.basename(root_dir or vim.uv.cwd())
local workspace_dir = string.format("%s/java/wksp/%s", cache_dir, project_name)
Expand Down
71 changes: 71 additions & 0 deletions after/indent/freemarker.vim
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
runtime! indent/html.vim
let s:htmlindent = &indentexpr
setlocal indentexpr=FreemarkerIndent()

let s:tags = []
let s:closetags = []
let s:special= []

" Conditional and block tags.
call add(s:tags, 'if')
call add(s:tags, 'elseif')
call add(s:tags, 'else')
call add(s:tags, 'attempt')
call add(s:tags, 'recover')
call add(s:tags, 'list')
call add(s:tags, 'break')
call add(s:tags, 'macro')
call add(s:tags, 'nested')
call add(s:tags, 'switch')
call add(s:tags, 'case')
call add(s:tags, 'default')
call add(s:tags, 'items')

" Conditional and block ending tags.
call add(s:closetags, 'if')
call add(s:closetags, 'attempt')
call add(s:closetags, 'list')
call add(s:closetags, 'macro')
call add(s:closetags, 'switch')
call add(s:closetags, 'items')

" Special tags that indent back.
call add(s:special, 'elseif')
call add(s:special, 'else')
call add(s:special, 'recover')

let s:tag_expr = join(s:tags, '\|')
let s:tag_close_expr = join(s:closetags, '\|')
let s:special_expr = join(s:special, '\|')

function! FreemarkerIndent()
let line = getline(v:lnum)
let previousNum = prevnonblank(v:lnum - 1)

" Hit the start of the file, use zero indent.
if previousNum == 0
return 0
endif

let previous = getline(previousNum)

if previous =~'<#\('.s:tag_expr.'\)'
return indent(previousNum) + &tabstop
endif

if line =~'</#\('.s:tag_close_expr.'\)' || line =~'<#\('.s:special_expr.'\)'
return indent(previousNum) - &tabstop
endif

" Special handling for html
if s:htmlindent == ''
return cindent(previousNum)
else
execute 'let ind = ' . s:htmlindent
return ind
endif
endfunction
82 changes: 82 additions & 0 deletions after/syntax/freemarker.vim
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
if exists("b:current_syntax")
finish
endif

"Basic html syntax{{{
syntax keyword freemarkerKeyword div p html body head title a href br b i form
syntax keyword freemarkerKeyword pre hr h1 h2 h3 tr td table thead th tbody type
syntax keyword freemarkerKeyword class caption style button input label script
syntax keyword freemarkerBoolean true false
"}}}

"Functions, assignments{{{
syntax match freemarkerFunction "\v\#function|\#return"
syntax match freemarkerFunction "\v\#return"
syntax match freemarkerFunction "\v\#assign"
syntax match freemarkerFunction "\v\#include"
syntax match freemarkerFunction "\v\#local"
"}}}

"open and close tags {{{
syntax match freemarkerFunction "<"
syntax match freemarkerFunction ">"
syntax match freemarkerFunction "("
syntax match freemarkerFunction ")"
syntax match freemarkerFunction "\["
syntax match freemarkerFunction "\]"
syntax match freemarkerFunction "\v/"
"}}}

"variables {{{
"variable type @s.example
syntax match freemarkerFunction "\v\@\S*"

"External variables ${example.test}
syntax region freemarkerSpecialChar start=+${+ end=+}+
"}}}

"Conditionals and blocs {{{
syntax match freemarkerConditional "\v\v\#if|\#else"
syntax match freemarkerConditional "\v\#elseif"
syntax match freemarkerConditional "\v\#attemp"
syntax match freemarkerConditional "\v\#recover"
syntax match freemarkerConditional "\v\#list"
syntax match freemarkerConditional "\v\#break"
syntax match freemarkerConditional "\v\#macro"
syntax match freemarkerConditional "\v\#nested"
syntax match freemarkerConditional "\v\#switch"
syntax match freemarkerConditional "\v\#case"
syntax match freemarkerConditional "\v\#default"
syntax match freemarkerConditional "\v\#items"
"}}}

"Basic operators {{{
syntax match freemarkerOperator "\v\*"
syntax match freemarkerOperator "\v/"
syntax match freemarkerOperator "\v\+"
syntax match freemarkerOperator "\v-"
syntax match freemarkerOperator "\v\?"
syntax match freemarkerOperator "\v\*\="
syntax match freemarkerOperator "\v/\="
syntax match freemarkerOperator "\v\+\="
syntax match freemarkerOperator "\v-\="
syntax match freemarkerOperator "\v\="
"}}}

"Strings and comments {{{
syntax match freemarkerString '\v".*"'
syntax match freemarkerComment "\v\<#--.*--\>"
"}}}

"highlighting groups {{{
highlight link freemarkerConditional Conditional
highlight link freemarkerOperator Operator
highlight link freemarkerFunction Function
highlight link freemarkerSpecialChar SpecialChar
highlight link freemarkerString String
highlight link freemarkerComment Comment
highlight link freemarkerKeyword Keyword
highlight link freemarkerBoolean Boolean
"}}}

let b:current_syntax = "freemarker"
22 changes: 11 additions & 11 deletions lazy-lock.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"SchemaStore.nvim": { "branch": "main", "commit": "e43f3e47991bc9f6cbc1d8b4d0f6a0d8d6c29284" },
"SchemaStore.nvim": { "branch": "main", "commit": "fa47222e29d6f6e80eddcdd0f125c27edf274ad5" },
"alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" },
"blink.cmp": { "branch": "main", "commit": "5f442681df24fe705d1ee7ce5b4d435aa4b4dee4" },
"blink.cmp": { "branch": "main", "commit": "e3b7cb4a1094377c3093a021300de123d9fc60d3" },
"color-picker.nvim": { "branch": "master", "commit": "06cb5f853535dea529a523e9a0e8884cdf9eba4d" },
"conform.nvim": { "branch": "master", "commit": "9180320205d250429f0f80e073326c674e2a7149" },
"conform.nvim": { "branch": "master", "commit": "70019124aa4f2e6838be9fbd2007f6d13b27a96d" },
"data-viewer.nvim": { "branch": "main", "commit": "40ddf37bb7ab6c04ff9e820812d1539afe691668" },
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
"go.nvim": { "branch": "master", "commit": "c6d5ca26377d01c4de1f7bff1cd62c8b43baa6bc" },
Expand All @@ -12,7 +12,7 @@
"jupytext.nvim": { "branch": "main", "commit": "c8baf3ad344c59b3abd461ecc17fc16ec44d0f7b" },
"lazy.nvim": { "branch": "main", "commit": "7e6c863bc7563efbdd757a310d17ebc95166cef3" },
"lazydev.nvim": { "branch": "main", "commit": "8620f82ee3f59ff2187647167b6b47387a13a018" },
"markdown.nvim": { "branch": "main", "commit": "6fbd1491abc104409f119685de5353c35c97c005" },
"markdown.nvim": { "branch": "main", "commit": "1faa6568eb61467d64c3d0aad8ac4c9c0e45514e" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "c6c686781f9841d855bf1b926e10aa5e19430a38" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"mini.icons": { "branch": "main", "commit": "6787321f70d674a481776b7cc2c781fb7002c644" },
Expand All @@ -21,19 +21,19 @@
"molten-nvim": { "branch": "main", "commit": "c621baf53459a6c45dfd98dcc11cbba7a7ae9470" },
"nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" },
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
"nvim-dap": { "branch": "master", "commit": "ffb077e65259f13be096ea6d603e3575a76b214a" },
"nvim-dap": { "branch": "master", "commit": "0e673accbb512e1e191dfb4fecea89cc38c1bcdd" },
"nvim-dap-ui": { "branch": "master", "commit": "e94d98649dccb6a3884b66aabc2e07beb279e535" },
"nvim-dbee": { "branch": "master", "commit": "21d2cc0844a16262bb6ea93ab3d0a0f20bd87853" },
"nvim-jdtls": { "branch": "master", "commit": "8f14aa1922ee5491ded1079a6576fae834535658" },
"nvim-jdtls": { "branch": "master", "commit": "266d0cb912bbe61d66b43c5e73db19a364380360" },
"nvim-lint": { "branch": "master", "commit": "1fea92f1d9908eaa5eb8bafe08b4293d7aadaa55" },
"nvim-lspconfig": { "branch": "master", "commit": "8b15a1a597a59f4f5306fad9adfe99454feab743" },
"nvim-lspconfig": { "branch": "master", "commit": "a8ef5e6e497b3ebeaaf35b939c07c211563b2e05" },
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
"nvim-notify": { "branch": "master", "commit": "c3797193536711b5d8983975791c4b11dc35ab3a" },
"nvim-treesitter": { "branch": "master", "commit": "4b222913486ec0a5983efa82b0649a2ab87cf1f0" },
"nvim-notify": { "branch": "master", "commit": "bd9cd51f9ef2f6326fc2bc9931d0718c1794e247" },
"nvim-treesitter": { "branch": "master", "commit": "fae21737be2846a04ae06a41d70b7fc8ad4bf9eb" },
"nvim-treesitter-refactor": { "branch": "master", "commit": "d8b74fa87afc6a1e97b18da23e762efb032dc270" },
"nvim-ufo": { "branch": "main", "commit": "32cb247b893a384f1888b9cd737264159ecf183c" },
"obsidian.nvim": { "branch": "main", "commit": "ae1f76a75c7ce36866e1d9342a8f6f5b9c2caf9b" },
"oil.nvim": { "branch": "master", "commit": "ba858b662599eab8ef1cba9ab745afded99cb180" },
"oil.nvim": { "branch": "master", "commit": "c6a39a69b2df7c10466f150dde0bd23e49c1fba3" },
"otter.nvim": { "branch": "main", "commit": "e8c662e1aefa8b483cfba6e00729a39a363dcecc" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" },
Expand All @@ -42,6 +42,6 @@
"telescope-fzf-native.nvim": { "branch": "main", "commit": "dae2eac9d91464448b584c7949a31df8faefec56" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "master", "commit": "2eca9ba22002184ac05eddbe47a7fe2d5a384dfc" },
"vimtex": { "branch": "master", "commit": "b8bb79b5fb27e9030ade92e75cd9375416f2c666" },
"vimtex": { "branch": "master", "commit": "56def42c4f3007979c38001518ebb92ea8fb5f72" },
"which-key.nvim": { "branch": "main", "commit": "8ab96b38a2530eacba5be717f52e04601eb59326" }
}
14 changes: 7 additions & 7 deletions lua/plugins/editor/completion.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
-- File : completion.lua
-- Description : completion config
-- Author : Kevin
-- Last Modified: 21 Dec 2024, 14:30
-- Last Modified: 03 Jan 2025, 00:25
-------------------------------------

return {
Expand Down Expand Up @@ -63,10 +63,10 @@ return {
},
},
completion = {
keyword = {
regex = "[-_/]\\|\\k",
exclude_from_prefix_regex = "[\\.]",
},
-- keyword = {
-- regex = "[-_/]\\|\\k",
-- exclude_from_prefix_regex = "[\\.]",
-- },
accept = {
auto_brackets = { enabled = true },
},
Expand All @@ -81,12 +81,12 @@ return {
winblend = vim.o.pumblend,
draw = {
treesitter = { "lsp" },
-- align_to_component = "kind_icon",
-- align_to = "kind_icon",
-- columns = { { "label", "label_description", gap = 1 }, { "kind_icon", "kind" } },
columns = { { "kind_icon" }, { "label", "label_description", gap = 1 } },
components = {
label = { ellipsis = true, width = { fill = true, max = 32 } },
label_description = { ellipsis = true, width = { fill = true, max = 26 } },
label_description = { ellipsis = true, width = { fill = true } },
kind_icon = {
ellipsis = false,
text = function(ctx)
Expand Down
4 changes: 2 additions & 2 deletions lua/plugins/lsp/handlers.lua
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ return {
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
title = "LSP❭ Hover",
border = "rounded",
max_height = math.floor(vim.o.lines * 0.4),
max_height = math.floor(vim.o.lines * 0.6),
max_width = math.floor(vim.o.columns * 0.8),
})

Expand All @@ -91,4 +91,4 @@ return {
},
})
end,
}
}
39 changes: 39 additions & 0 deletions snippets/general/freemarker.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"define-variable": {
"prefix": "as",
"body": "<#assign ${1:varName} = ${2:value}>$0",
"description": "Assign value to variable"
},
"if-statement": {
"prefix": "if",
"body": [
"<#if ${1:condition}>",
"\t${2:body}",
"</#if>",
"$0"
],
"description": "If statement"
},
"if-else-statement": {
"prefix": "ife",
"body": [
"<#if ${1:condition}>",
"\t${2:body}",
"<#else>",
"\t${3:body2}",
"</#if>",
"$0"
],
"description": "If-else statement"
},
"list-statement": {
"prefix": "lst",
"body": [
"<#list ${1:listToIterate}>",
"\t${2:body}",
"</#list>",
"$0"
],
"description": "If statement"
}
}
Loading

0 comments on commit ee59394

Please sign in to comment.