Compare commits

..

1117 commits

Author SHA1 Message Date
Pojok Code
76277745b3 enc: update config, add cmp colorfull and cmp RG 2025-08-02 21:41:49 +07:00
Asep Komarudin
20e96da865
Merge pull request #14 from pojokcodeid/v2.5
V2.5
2025-08-02 21:23:07 +07:00
Pojok Code
3f9b73de6a Merge branch 'dev' 2025-08-02 21:06:43 +07:00
Pojok Code
08d228aa17 Merge branch 'dev' into v2.5 2025-08-02 20:56:54 +07:00
Pojok Code
3b30870f04 enc: update patch plugins 2025-08-02 20:19:38 +07:00
Pojok Code
b341ee7246 enc: update config and mappings 2025-07-27 19:05:46 +07:00
Pojok Code
3f3e84aa49 enc: add option nvim-tree or neo-tree 2025-07-22 21:34:50 +07:00
Pojok Code
c29942d4a7 enc: change indent blank line 2025-07-20 21:40:36 +07:00
Pojok Code
aa2f3a49ef enc: update dressing and lsp signature 2025-07-20 21:37:45 +07:00
Pojok Code
1bdac09f77 enc:add lsp signature help 2025-07-19 19:59:14 +07:00
Pojok Code
4b9382146f enc: add usercommand enable disable codeium 2025-07-19 09:23:29 +07:00
Pojok Code
6d87fbb90a enc: add colorfull cmp, add new simple icon, enhance odeium config 2025-07-18 22:23:07 +07:00
Pojok Code
be2518be72 enc: add new lspkind icons 2025-07-14 23:25:06 +07:00
Pojok Code
4baa37dec7 enc: remove default build 2025-07-13 19:39:49 +07:00
Pojok Code
5ae8f516b8 enc: add default config 2025-07-13 13:31:30 +07:00
Pojok Code
8bc18a0f0c enc: add update config codeium 2025-07-12 19:39:35 +07:00
Pojok Code
38bf58ad63 enc: add neocodeium config for replace codeium.vim 2025-07-12 17:23:58 +07:00
Pojok Code
64e62e59ba update plugins version 2025-07-12 16:46:48 +07:00
Pojok Code
bb6238e749 enc: update default config 2025-07-08 07:35:24 +07:00
pojok code
37aa6dd7a7 enc: add gemini chat 2025-07-06 20:50:50 +07:00
pojok code
5206ccb56e enc: add config cheatsheet keymaps 2025-07-05 17:40:57 +07:00
pojok code
a4e2d9ec21 enc: add file type definition 2025-07-02 21:27:12 +07:00
pojok code
2ab92b6e94 enc: add keymaps info 2025-07-02 20:46:50 +07:00
pojok code
6d3f3dedad enc: add keymap table documentastions 2025-07-02 07:09:44 +07:00
pojok code
6087de87b0 enc: change visual multi lib 2025-06-29 08:32:10 +07:00
pojok code
282733e5ea enc: add key maps SHIFT+ALT-UP/DOWN for duplicate code 2025-06-28 23:53:00 +07:00
pojok code
fa09a7248e enc: update key mapping for comment 2025-06-28 23:42:52 +07:00
pojok code
1167f053e4 enc: add vitest config 2025-06-27 15:52:23 +07:00
pojok code
bf0a8b2f9b enc: add user command for create new project javascript 2025-06-26 21:58:09 +07:00
pojok code
82392943e2 enc: add create go project whijart 2025-06-26 19:06:22 +07:00
pojok code
68cf1f8bc4 enc: add user command OpenBrowser 2025-06-22 18:48:16 +07:00
pojok code
339f818e4a add: user command for runner cmd 2025-06-22 18:29:49 +07:00
pojok code
7450625ba8 enc: update modal npm runner 2025-06-22 08:43:35 +07:00
pojok code
23a8cf07bf enc: add npm runner with popup modal 2025-06-22 00:37:23 +07:00
pojok code
c1e9e57f17 enc: add npm dev runner for vite 2025-06-21 19:19:34 +07:00
pojok code
dc19ff45d8 enc: update default config 2025-06-21 13:33:57 +07:00
pojok code
5df3f7b2ab enc: add new command 2025-06-16 05:54:53 +07:00
pojok code
82d6ba2889 enc: add telescope diff file 2025-06-14 21:37:42 +07:00
pojok code
bf60de3aa1 fix:disable dressing input 2025-06-14 21:13:57 +07:00
pojok code
d31ffccdca enc: overide command TSInstallInfo 2025-06-14 19:46:00 +07:00
pojok code
d41d9b4cf5 fix: nvim menu create new file 2025-06-14 16:17:17 +07:00
pojok code
f3761c699a enc: update config mason backdrop 2025-06-11 21:13:56 +07:00
pojok code
04f3bfc8a3 enc: update config transparant 2025-06-10 22:57:15 +07:00
pojok code
56982c3434 enc: add uninstall prosedure 2025-06-10 21:41:41 +07:00
pojok code
65b1300677 enc: update transparant config for tabbufferline bg color 2025-06-10 21:09:13 +07:00
pojok code
5b2d06cf97 enc: add transparant config for tab 2025-06-10 07:44:40 +07:00
pojok code
af0923e403 enc: update patch plugins 2025-06-08 20:08:34 +07:00
Asep Komarudin
b727898cf3
update branch 2025-06-08 20:03:52 +07:00
pojok code
69d6dd962d enc: change golang linter to golangci-lint 2025-06-04 09:07:15 +07:00
pojok code
8e0228505a enc: update plugins regular 2025-06-04 06:14:30 +07:00
pojok code
c2fbd57469 enc: update config autocmd 2025-06-04 06:14:13 +07:00
pojok code
5dc5c723b2 fix: update config mason-lspconfig 2025-06-03 21:08:25 +07:00
Pojok Code
2bae787a7d enc: update patch 2025-01-19 13:12:37 +07:00
Pojok Code
d084330d2f enc: add update config kotlin 2024-11-27 09:19:02 +07:00
Pojok Code
3fb9efd7c9 enc: update config java jdtls 2024-11-19 13:03:26 +07:00
Pojok Code
5e9e520a23 enc: update config 2024-11-19 09:03:01 +07:00
Pojok Code
fde1324bf2 enc: update config jdtls 2024-11-19 06:46:04 +07:00
Pojok Code
9166b0e686 Merge branch 'main' into v2.5 2024-11-18 20:18:43 +07:00
Pojok Code
b3f841d25c qa: testing create java project 2024-11-18 20:18:15 +07:00
Pojok Code
b4e2e4d000 Merge branch 'dev' into v2.5 2024-11-17 10:51:49 +07:00
Pojok Code
11a88eb681 enc: add create file java 2024-11-17 10:12:07 +07:00
Pojok Code
c66913e4c2 enc: add gradle create new project 2024-11-16 21:51:22 +07:00
Pojok Code
16264d0b0d enc: add create project java 2024-11-16 20:14:22 +07:00
Pojok Code
3c9cf18933 enc: add run project gradle and maven 2024-11-14 21:19:48 +07:00
Pojok Code
4af6a3dec6 enc: update config jdtls 2024-11-14 19:52:24 +07:00
Pojok Code
26cb34e301 enc: update patch plugins 2024-11-14 15:02:28 +07:00
Pojok Code
353e5a66c7 enc: support neotest for gradle only 2024-11-14 07:50:11 +07:00
Pojok Code
e0a4367eb0 enc: simplify neotest adaptor for java 2024-11-14 06:48:20 +07:00
Pojok Code
d186be6aec enc: add icons to outline 2024-11-14 06:43:36 +07:00
Pojok Code
835b1706b2 enc: update config spesifik language java 2024-11-14 06:20:10 +07:00
Pojok Code
0c56a139ec enc: add jdtls auto config 2024-11-13 05:33:40 +07:00
Pojok Code
273f3ebcb7 enc: add alternative config jdtls 2024-11-12 17:45:45 +07:00
Pojok Code
422efe87ce enc: config jdtls independent 2024-11-12 13:03:22 +07:00
Pojok Code
e9e0ca3e88 add: auto config for jdtls 2024-11-12 09:56:50 +07:00
Pojok Code
b3f5ec5619 enc: set default auto_onatach navic 2024-11-12 07:37:07 +07:00
Pojok Code
db41fc7e00 enc: update config jdtls 2024-11-12 07:30:58 +07:00
Pojok Code
5ab63cdf43 enc: add java key mapping 2024-11-11 23:03:22 +07:00
Pojok Code
292e79137f enc: add dynamic project gradle and maven 2024-11-11 22:47:41 +07:00
Pojok Code
17aee6c301 enc: add config java model 2 2024-11-11 06:21:02 +07:00
Pojok Code
5146726772 enc: add java config project 2024-11-10 00:15:26 +07:00
Pojok Code
35348c069a enc: add gitub theme 2024-11-09 12:20:45 +07:00
Pojok Code
826cbfe9f8 enc: add gruvbox color scheme 2024-11-09 07:14:26 +07:00
Pojok Code
177cf190df enc: add keymapping gradle run if file type java 2024-11-08 21:37:42 +07:00
Pojok Code
b3d4f8b8a1 enc: move default theme to Eva-Dark 2024-11-08 21:10:34 +07:00
Pojok Code
5a64a2e380 enc: disable numbering if lazyload plugins first time 2024-11-08 13:08:06 +07:00
Pojok Code
fe846f291e fix: LSP mapping key 2024-11-08 09:08:04 +07:00
Pojok Code
c21ebc23ef Merge branch 'dev' into v2.5 2024-11-07 15:52:47 +07:00
Pojok Code
c8d51254d4 enc: disable php by default 2024-11-07 15:52:28 +07:00
Pojok Code
b4356bd49a Merge branch 'dev' into v2.5 2024-11-07 08:47:38 +07:00
Pojok Code
8a5c2dd398 fix: evatheme load not proverly 2024-11-07 08:41:48 +07:00
Pojok Code
b5f544bc27 enc: add catppucin theme 2024-11-07 08:35:30 +07:00
Pojok Code
541a0dac95 enc: add tokyonight theme 2024-11-07 08:17:09 +07:00
Pojok Code
ea602aba6e enc: add sublime text theme juliana 2024-11-07 07:29:22 +07:00
Pojok Code
5200fa75aa enc: add dark and light varian theme 2024-11-07 06:44:58 +07:00
Pojok Code
3f5a3a6439 enc: move evatheme overide hilight to std template list 2024-11-07 06:19:54 +07:00
Pojok Code
8b37a27d59 Merge branch 'dev' into v2.5 2024-11-06 15:41:35 +07:00
Pojok Code
11875c382d fix: laravel project for error treesitter 2024-11-06 15:19:48 +07:00
Pojok Code
80f8ade2a5 qa: testing php laravel 2024-11-06 13:48:58 +07:00
Pojok Code
299c94137d fix: conflik key mapping with increment rename 2024-11-06 12:26:52 +07:00
Pojok Code
16c9fa5a36 enc: reformat indentat code 2024-11-06 12:22:10 +07:00
Pojok Code
0ef35939de enc:change keymapping codeium cycle 2024-11-05 22:07:16 +07:00
Pojok Code
e6e7acc2a0 enc: trim white space nvim-cmp 2024-11-05 22:04:01 +07:00
Pojok Code
d5da617c07 fix: move php-cs-fixcer to pretty-php 2024-11-05 16:56:28 +07:00
Pojok Code
1a59409085 Merge branch 'main' into v2.5 2024-11-05 16:15:24 +07:00
Pojok Code
ef38e66bf9 fix: disable laravel.nvim if os windows 2024-11-05 16:15:00 +07:00
Pojok Code
a3bda6f3a5 Merge branch 'dev' 2024-11-05 15:44:12 +07:00
Pojok Code
c52fc5f1d2 Merge branch 'dev' into v2.5 2024-11-05 15:43:48 +07:00
Pojok Code
fc0a994282 fix: rollback laravel.nvim to v2.2.1 2024-11-05 15:35:20 +07:00
Pojok Code
8467b64cd9 enc: move default config from string to table 2024-11-05 15:05:03 +07:00
Pojok Code
ea15a8e8b8 fix: error compila eva theme 2024-11-05 14:28:25 +07:00
Pojok Code
ba77691fb3 fix: evatheme indent scupe color 2024-11-05 08:05:42 +07:00
Pojok Code
50184acdb4 Merge branch 'dev' 2024-11-05 07:42:59 +07:00
Pojok Code
335c0d0cb6 Merge branch 'dev' into v2.5 2024-11-05 07:41:36 +07:00
Pojok Code
edd352519e enc: update alpha mapping for lazy 2024-11-05 07:38:27 +07:00
Pojok Code
9a5c3d6a5b enc: add basic key mapping 2024-11-05 07:33:24 +07:00
Pojok Code
5f97594d62 enc: add snippet path config 2024-11-05 06:09:08 +07:00
Pojok Code
9aebda6491 fix: update lazy starter config 2024-11-04 21:40:14 +07:00
Pojok Code
8767818e34 Merge branch 'v2.5' 2024-11-04 21:33:45 +07:00
Pojok Code
609234c086 enc: upgrade v2 to v2.5 2024-11-04 21:29:25 +07:00
Pojok Code
68ea712b98 enc: update patch plugins 2024-11-04 20:14:48 +07:00
Pojok Code
f5e3f130e4 enc: update notify background 2024-11-04 20:12:57 +07:00
Pojok Code
70e40989c9 enc: update transparent config 2024-11-04 20:12:32 +07:00
Pojok Code
b75362b066 enc: update config zen mode 2024-11-02 22:33:37 +07:00
Pojok Code
4bd49ca963 enc: add zen mode 2024-11-02 22:13:43 +07:00
Pojok Code
dfe7507f5a enc: nvimtree window border color 2024-11-02 14:59:51 +07:00
Pojok Code
54ccd837a9 enc: add nvim menu and colorpicker option 2024-11-02 14:10:32 +07:00
Pojok Code
c8bc3339ea enc: update cmp style 2024-11-01 21:30:07 +07:00
Pojok Code
be3648f80d fix: mason-lspconfig swith with auto-lsp 2024-10-29 22:21:55 +07:00
Pojok Code
ce4b507ca3 fix: rename ts_server to ts_ls 2024-10-29 16:58:55 +07:00
Pojok Code
5559c097d9 enc: update config eva-theme add compile 2024-10-27 14:07:17 +07:00
Pojok Code
f9e08dd537 enc: update config live server 2024-10-26 17:22:29 +07:00
Pojok Code
9b20297edc enc: update config live server 2024-10-26 17:22:09 +07:00
Pojok Code
f7dc5afb5b enc: update patch plugins 2024-10-26 12:36:58 +07:00
Pojok Code
ba028451b6 enc: update dashboard config 2024-10-23 18:07:49 +07:00
Pojok Code
b8d786072a enc: update dashboard config 2024-10-23 16:12:55 +07:00
Pojok Code
05d51faadf enc: update config dashboard 2024-10-23 16:07:07 +07:00
Pojok Code
c09e320633 enc: move lsp config to auto-lsp.nvim 2024-10-20 17:21:07 +07:00
Pojok Code
5f766a5717 enc: update patch plugins 2024-10-19 12:24:36 +07:00
Pojok Code
e2afd37cae fix: nvim tree git ignore hide file 2024-10-12 16:42:46 +07:00
Pojok Code
cde110e7bd Merge branch 'v2' 2024-10-11 21:18:14 +07:00
Pojok Code
51f6b3bcd4 enc: update config eva-theme 2024-10-11 21:17:05 +07:00
Pojok Code
27f602e210 enc: 2024-10-11 21:17:05 +07:00
Pojok Code
ad9f646417 Merge branch 'v2' into dev 2024-10-11 21:09:02 +07:00
Pojok Code
0ee6631931 enc: fix nvim-tree error exploler 2024-10-11 21:02:53 +07:00
Pojok Code
30ba4f5233 enc: fix nvim-tree exploler error 2024-10-11 21:00:37 +07:00
Pojok Code
2ce30970f6 enc: fix nvim-tree open file exploler 2024-10-11 21:00:07 +07:00
Pojok Code
cfbb38f75e enc: backup nvim-tree config 2024-10-11 20:36:00 +07:00
Pojok Code
ceb786c9cc enc: create backup nvim-tree config 2024-10-11 20:35:34 +07:00
Pojok Code
3c34a7ba22 fix: error nvim-tree indent file 2024-10-11 17:28:02 +07:00
Pojok Code
d0194ea92e enc: patch plugins 2024-10-06 12:49:52 +07:00
Pojok Code
ec403e8b54 enc: update patch plugins 2024-10-02 08:00:43 +07:00
Pojok Code
09c5fdd259 enc: update patch plugins 2024-09-22 12:05:34 +07:00
Pojok Code
aeae04bacf enc: update patch plugins 2024-09-13 05:50:10 +07:00
Pojok Code
3ddbd80e6a enc: update patch plugins 2024-09-10 07:44:52 +07:00
Pojok Code
870e0fe28a enc: update patch plugins 2024-09-04 07:53:45 +07:00
Pojok Code
f488cd1495 enc: update patch plugins 2024-08-30 21:28:41 +07:00
Pojok Code
ee0092886d enc: update patch plugins 2024-08-30 18:54:01 +07:00
Pojok Code
4d03c39f7a enc: update patch plgins 2024-08-30 05:25:57 +07:00
Pojok Code
70185c6de3 enc: update patch plugins 2024-08-29 06:46:35 +07:00
Pojok Code
2b1a97a9f2 enc: update patch plugins 2024-08-28 06:52:16 +07:00
Pojok Code
891086f606 enc: update patch plugins 2024-08-27 12:59:14 +07:00
Pojok Code
82b68e6d01 enc: update patch plugins 2024-08-26 07:43:46 +07:00
Pojok Code
4894f180e6 enc: update patch plugins 2024-08-25 14:57:20 +07:00
Pojok Code
245f1b7abb enc: update patch plugins 2024-08-25 12:02:39 +07:00
Pojok Code
be42c75ded enc: update patch plugins 2024-08-24 13:22:23 +07:00
Pojok Code
60fa8e90c6 enc: update patch plugins 2024-08-23 15:15:26 +07:00
Pojok Code
1629caa700 enc: update patch plugins 2024-08-22 17:11:55 +07:00
Pojok Code
3ac997cc10 enc: update config 2024-08-19 21:39:51 +07:00
Pojok Code
72b8b4b531 enc: update patch plugins 2024-08-15 07:46:49 +07:00
Pojok Code
12ec8d33ef enc: update config eva-theme 2024-08-03 21:09:59 +07:00
Pojok Code
cfea979e6b enc: 2024-08-03 21:09:32 +07:00
Pojok Code
e76eea2ebb enc: update eva-theme config 2024-08-03 18:05:19 +07:00
Pojok Code
87a44d46db enc: update config Eva-theme 2024-08-03 18:04:40 +07:00
Pojok Code
41bc2bce8f enc: update patch plugins 2024-08-03 17:28:09 +07:00
Pojok Code
f6ec28fbba enc: update patch plugins 2024-08-02 08:14:03 +07:00
Pojok Code
9762d71c6e enc: update config bufferline 2024-07-28 14:21:42 +07:00
Pojok Code
ab014bb8b5 enc: update patch plugins 2024-07-26 06:54:47 +07:00
Pojok Code
0f9e5836be enc: update patch plugins 2024-07-24 05:30:51 +07:00
Pojok Code
5cf2456f6c enc: update patch plugins 2024-07-21 18:22:34 +07:00
Pojok Code
9b806d2ed1 enc: update codeium event load 2024-07-21 05:48:00 +07:00
Pojok Code
224d29c616 enc: add config lualine eva-dark theme 2024-07-20 18:25:02 +07:00
Pojok Code
52b270121f enc: update patch plugins 2024-07-20 07:08:25 +07:00
Pojok Code
6143c6a95d enc: change bufferline trank marker 2024-07-18 22:26:11 +07:00
Pojok Code
bde07f949a fix: error which-key.nvim update config 2024-07-18 16:53:21 +07:00
Pojok Code
38a9984694 enc: update config which-key 2024-07-16 08:11:40 +07:00
Pojok Code
a2240b582c enc: set border rounded 2024-07-13 16:56:03 +07:00
Pojok Code
f69bcdf155 enc: update patch plugins 2024-07-13 16:49:59 +07:00
Pojok Code
18f8a746e4 enc: update default config which-key 2024-07-13 13:28:39 +07:00
Pojok Code
c0eb97fa96 enc: move keymap from which-key to bufferline 2024-07-13 13:23:31 +07:00
Pojok Code
7962b741bd enc: update config which-key 2024-07-13 13:07:24 +07:00
Pojok Code
1aa86bfa2d change: vim.g.pcode_icon to pcode.icons 2024-07-09 17:09:04 +07:00
Pojok Code
624d3aceb6 enc: make modular config 2024-07-09 16:48:34 +07:00
Pojok Code
d46370f0b3 enc: update plugins config 2024-07-07 08:41:02 +07:00
Pojok Code
b6711611ec enc: move lsp line repository to abzcoding/lsp_lines.nvim 2024-07-07 06:02:56 +07:00
Pojok Code
aa8f68d8aa add: lsp bufread, bufNewFile, BufreadFre 2024-07-06 16:40:01 +07:00
Pojok Code
32b5eba8bb enc: update patch library 2024-07-06 14:17:33 +07:00
asep.komarudin
ff62c20795 enc: migrate to auto-lint and auto-conform 2024-07-05 07:59:12 +07:00
asep.komarudin
eace6b6674 add: default tab 4 2024-07-05 06:59:04 +07:00
asep.komarudin
03a3d5f32b enc: update config jdtls 2024-07-05 06:44:07 +07:00
asep.komarudin
e7c7785cc5 enc: add auto lint nvim-lint 2024-07-04 20:52:02 +07:00
asep.komarudin
19abed8ac0 enc: update config auto conform 2024-07-03 20:46:24 +07:00
asep.komarudin
dd872b6ea5 add: auto-conform config plugins 2024-07-02 21:55:22 +07:00
asep.komarudin
a636b2988d enc: update jetbrains theme relative number color 2024-07-02 19:48:49 +07:00
asep.komarudin
a72df67e8f add: darcula custom jsonc hilight @variable 2024-07-02 16:31:31 +07:00
asep.komarudin
4f3feb5c38 fix: close currrent buffer 2024-07-02 08:21:51 +07:00
asep.komarudin
49478d3a89 fix: npx prisma stude execute command 2024-07-01 18:44:45 +07:00
asep.komarudin
fecc32cc9e add: conform ensure instaled 2024-07-01 18:00:04 +07:00
asep.komarudin
4ead9b7dd3 add: git ignore dbui 2024-06-30 19:19:13 +07:00
asep.komarudin
e7caa67641 q 2024-06-30 19:17:59 +07:00
asep.komarudin
ca6f6ca957 add: prisma studio mappings 2024-06-30 19:17:28 +07:00
asep.komarudin
02f4aab215 add: prisma format and key mappings 2024-06-30 18:53:42 +07:00
asep.komarudin
ef97b8b1bc add: prisma default config 2024-06-30 18:02:32 +07:00
asep.komarudin
14284a94ca fix: disable none-ls 2024-06-30 16:12:18 +07:00
asep.komarudin
1d622094b9 enc: testing kotlin on windows 2024-06-30 12:22:08 +07:00
asep.komarudin
ef6ac90acf add: live server 2024-06-30 11:15:37 +07:00
asep.komarudin
4ba72487b4 enc: run kotlin test under cursor 2024-06-30 10:17:10 +07:00
asep.komarudin
c3d0591394 enc: runb deno test under cursor 2024-06-30 09:44:45 +07:00
asep.komarudin
d4bef2b2d1 add: kotlin default config 2024-06-29 22:13:41 +07:00
asep.komarudin
aed25e545a enc: rename deno to active_deno_config 2024-06-29 19:39:21 +07:00
asep.komarudin
4333ed78b4 add: deno config project 2024-06-29 19:03:15 +07:00
asep.komarudin
9662230b4a add: ignore ast-grep fro lua file 2024-06-29 15:41:07 +07:00
asep.komarudin
fbd69d94ec add: auto switch to conform if use default config language 2024-06-29 14:26:46 +07:00
asep.komarudin
22202bc11b add: default rust analizer config 2024-06-29 13:31:00 +07:00
asep.komarudin
b2404fbb67 add: eslint_d for vue, astro and sevelte 2024-06-29 12:16:01 +07:00
asep.komarudin
d9702eb157 add: eslint_d for jsx and tsx 2024-06-29 12:10:29 +07:00
asep.komarudin
2f2909cfe4 enc: default config javascript 2024-06-29 11:51:07 +07:00
asep.komarudin
32cf770bbd enc: default config for php developer 2024-06-29 11:28:36 +07:00
asep.komarudin
0d0de22c7b enc: config default golang 2024-06-29 11:07:33 +07:00
asep.komarudin
a7ae61e8af remove: treesitter duplicate config 2024-06-29 10:04:03 +07:00
asep.komarudin
b2e2b94344 remove duplicate lsp config 2024-06-29 09:30:27 +07:00
asep.komarudin
d2749f48eb add mograte from dev 2024-06-29 08:56:13 +07:00
asep.komarudin
f5f74f80e0 fix: format on save tidak respon jika menggunakan lsp format 2024-06-29 08:40:58 +07:00
asep.komarudin
2e64635d7e add: ddynamic path jdtls 2024-06-29 08:28:20 +07:00
asep.komarudin
9b41753fd4 add: update 2024-06-29 08:00:30 +07:00
asep.komarudin
14207d8f21 add: update config 2024-06-29 07:58:47 +07:00
asep.komarudin
204561a51e add: rollback jdtls error 2024-06-29 07:58:11 +07:00
asep.komarudin
530d54d5a6 rollback error jdtls 2024-06-29 07:51:15 +07:00
asep.komarudin
0adcd0f0aa test: java on linux 2024-06-29 07:39:58 +07:00
asep.komarudin
fa940d994e rollback: error jdtls linux 2024-06-29 07:28:45 +07:00
asep.komarudin
91ecdb0406 test formattrer 2024-06-29 06:59:11 +07:00
asep.komarudin
94ff8e53a9 qa: jdtls linux test 2024-06-29 06:56:39 +07:00
asep.komarudin
54657657a3 add: update config default python 2024-06-28 21:35:21 +07:00
asep.komarudin
3388bdd1d7 add: update config default python 2024-06-28 21:29:11 +07:00
asep.komarudin
e3ebfb7a5b add: auto on dap if c++ true 2024-06-28 21:12:50 +07:00
asep.komarudin
d3b57e0fa6 enc: cpp config default 2024-06-28 20:34:43 +07:00
asep.komarudin
1a91af074f add: jdtls skip config 2024-06-28 19:38:22 +07:00
asep.komarudin
e009cbb877 add: disable jdtls if nvim-jdtls active 2024-06-28 19:29:01 +07:00
asep.komarudin
524bfc707b add: symbol outline 2024-06-28 17:34:17 +07:00
asep.komarudin
ec8d701b71 enc: update file name from mason to masoncfg 2024-06-28 17:12:39 +07:00
asep.komarudin
d44240f988 add: java dap config 2024-06-28 15:57:48 +07:00
asep.komarudin
21929ee44d add: config nvim-jdtls 2024-06-28 13:14:19 +07:00
asep.komarudin
6da9ec51d8 add: custom mason ensure installed 2024-06-28 12:01:06 +07:00
asep.komarudin
fc32c1b69c add: global variable unique_list 2024-06-28 08:49:33 +07:00
asep.komarudin
024214153a enc: remove tab 4 to default config 2024-06-27 22:51:40 +07:00
asep.komarudin
522c9db37c enc: add LSP Inactive info on lualine 2024-06-27 22:43:15 +07:00
asep.komarudin
73d0838347 enc: lua_ls set one workspace load 2024-06-27 14:23:12 +07:00
asep.komarudin
a988f497e1 enc: testing jdtls linux 2024-06-27 13:58:48 +07:00
asep.komarudin
34d23ba464 add: dynamic dap config 2024-06-27 11:53:44 +07:00
asep.komarudin
fe8e5296f9 add: dap config for other language 2024-06-27 11:38:10 +07:00
asep.komarudin
cf21e5a91a enc: add copy paste to telescope livegrap 2024-06-26 20:40:54 +07:00
asep.komarudin
d93425cec0 add: nvimlint remark mapping 2024-06-26 20:26:53 +07:00
asep.komarudin
77b40e7caf add: remark conform mapping with languuage 2024-06-26 20:01:10 +07:00
asep.komarudin
55c555afe1 add: additional config conform filetype mapping 2024-06-26 19:34:33 +07:00
asep.komarudin
a6f0a973cf add: config treesitter contex 2024-06-26 18:39:52 +07:00
asep.komarudin
70cc034eea add: config treesitter context 2024-06-26 18:36:33 +07:00
asep.komarudin
c762b2584d add: config disable format onsave on conform 2024-06-26 17:54:14 +07:00
asep.komarudin
5fe2180144 add: cocnform ignore patern and nvimlint ignore patern 2024-06-26 17:15:35 +07:00
asep.komarudin
77ec605527 enc: update format on save flow 2024-06-26 16:46:25 +07:00
asep.komarudin
2486c9e49e add alternative formatter & linter conform and nvim-lint 2024-06-26 14:05:25 +07:00
asep.komarudin
98a141b4b5 add: lualine null-ls validation 2024-06-26 12:25:53 +07:00
asep.komarudin
ece7dd2b9f enc: testing java jdtls linux 2024-06-25 20:52:29 +07:00
asep.komarudin
f5adb4bb7d enc: testing java on linux 2024-06-25 20:32:28 +07:00
asep.komarudin
ee86e49f17 add: config java with mason registri 2024-06-25 19:52:37 +07:00
asep.komarudin
9f267f2109 add: update jdtls cmd config 2024-06-25 19:35:00 +07:00
asep.komarudin
4776d7f0bf enc: update jdtls cache dir 2024-06-25 19:26:57 +07:00
asep.komarudin
d6b019bfb8 enc: java cmd jdtls config 2024-06-25 19:16:47 +07:00
asep.komarudin
83df5f4359 add: cmd command jdtls 2024-06-25 19:06:20 +07:00
asep.komarudin
0ce16ab2a3 disable java config 2024-06-25 17:18:05 +07:00
asep.komarudin
2d1579c969 enc: migrate java from nvim-jdtls to lsp jdtls 2024-06-25 16:58:01 +07:00
asep.komarudin
4bd718cab7 add: lsp blade dan linter blade 2024-06-25 11:41:17 +07:00
asep.komarudin
fbc8a53840 add: blade treesitter config 2024-06-25 10:25:26 +07:00
asep.komarudin
b9949062dc add: todo comment 2024-06-25 07:22:10 +07:00
asep.komarudin
7162f65a13 add: auto save config 2024-06-25 06:41:59 +07:00
asep.komarudin
a3143f9ae0 enc: optimize lsp config & optimize foramat on save 2024-06-25 05:41:42 +07:00
asep.komarudin
618b816d52 add: prettier to default js formatter 2024-06-24 17:04:13 +07:00
asep.komarudin
29a0e20f56 add: default php lint 2024-06-24 16:41:16 +07:00
asep.komarudin
10dfd41f44 add: php default linter config 2024-06-24 16:25:36 +07:00
asep.komarudin
ef95246d88 add: config default java 2024-06-24 15:35:26 +07:00
asep.komarudin
24b3020b5c test default config 2024-06-24 12:27:03 +07:00
asep.komarudin
f7c84d58f8 enc: cpp confug default 2024-06-24 12:05:25 +07:00
asep.komarudin
22fef75144 rollback: config with conform 2024-06-24 08:03:25 +07:00
asep.komarudin
33fe8d43df add: migrate go format & lint 2024-06-24 07:26:20 +07:00
asep.komarudin
39b6c22356 add: php lint for default config 2024-06-24 06:56:05 +07:00
asep.komarudin
13e2e75069 enc: add formattrer & linter for php config 2024-06-24 06:37:48 +07:00
asep.komarudin
b28f354786 add: alternative disable config format on save 2024-06-24 05:55:08 +07:00
asep.komarudin
4392eb6d59 add: alternative config disable format on save 2024-06-24 05:54:11 +07:00
asep.komarudin
aeeb5ccd1f fix: status line info 2024-06-23 23:21:49 +07:00
asep.komarudin
e9d75bd429 add: migrate cpp & java formatter to conform 2024-06-23 23:11:52 +07:00
asep.komarudin
ab36e30b69 add: google java format for java config 2024-06-23 22:08:20 +07:00
asep.komarudin
66c83b9abb remove: java debug config 2024-06-23 20:23:05 +07:00
asep.komarudin
17204ad330 testing juava jdtls 2024-06-23 19:22:53 +07:00
asep.komarudin
94ef091902 dap testing 2024-06-23 18:02:37 +07:00
asep.komarudin
ddfa140e41 fix: java dap 2024-06-23 17:15:58 +07:00
asep.komarudin
cecf29d7db enc: java default cconfig 2024-06-23 17:02:53 +07:00
asep.komarudin
f0f7958de7 add: c treesitter deefault config 2024-06-22 21:14:35 +07:00
asep.komarudin
e3dcee7c35 fix: error treesitter cpp 2024-06-22 21:10:52 +07:00
asep.komarudin
174eed8daa enc: clean code dap 2024-06-22 20:55:58 +07:00
asep.komarudin
d352202bcf enc: auto install cpp dap 2024-06-22 20:51:09 +07:00
asep.komarudin
a7933afc34 add: auto install cpp dap 2024-06-22 20:48:13 +07:00
asep.komarudin
9a3c7cd78b enc: cpp global config 2024-06-22 20:22:21 +07:00
asep.komarudin
bdd33afd27 fix: cpp conflix error 2024-06-22 17:19:58 +07:00
asep.komarudin
ea7e0730c2 add: venv info config 2024-06-22 15:20:23 +07:00
asep.komarudin
826445d655 add: create info for create python venv 2024-06-22 14:44:20 +07:00
asep.komarudin
16723f902e fix: python test linux and windows 2024-06-22 14:14:49 +07:00
asep.komarudin
5817798c72 fix: dap python 2024-06-22 13:56:20 +07:00
asep.komarudin
fa07b44ecf fix: python dap linux and windows 2024-06-22 13:43:18 +07:00
asep.komarudin
af1dd1aa00 fix: python run windows and linux 2024-06-22 13:20:21 +07:00
asep.komarudin
35c170c09a enc: add default config python 2024-06-22 13:00:28 +07:00
asep.komarudin
178c969312 enc: add default config golang 2024-06-22 12:01:30 +07:00
asep.komarudin
abb9a69a87 enc: default config php 2024-06-22 11:31:24 +07:00
asep.komarudin
2165fb1c63 enc: config default javascript 2024-06-22 10:29:08 +07:00
asep.komarudin
66d401335e enc: update default config ts rust 2024-06-22 09:33:55 +07:00
asep.komarudin
ebe7697c5e enc: add default config for rust 2024-06-22 08:20:55 +07:00
asep.komarudin
01af4a3a1d enc: config default formatter 2024-06-21 14:47:04 +07:00
asep.komarudin
b643b04031 add: big file plugins 2024-06-20 07:06:20 +07:00
asep.komarudin
f2cd687048 enc:add config dap golang & test golang 2024-06-18 20:16:05 +07:00
asep.komarudin
bb58e61e35 enc: add python unit test config 2024-06-18 15:02:23 +07:00
asep.komarudin
68cf0d9468 add: config pydebug virtual text 2024-06-18 09:13:56 +07:00
asep.komarudin
d8ded80fd4 set phpunit default false 2024-06-18 07:16:35 +07:00
asep.komarudin
8374eb0483 enc: add phpunit test 2024-06-18 07:14:51 +07:00
asep.komarudin
7117a875fb fix: change codeium bufwinenter to BufEnter 2024-06-17 20:00:23 +07:00
asep.komarudin
63c3f9d088 add: javascript debug to false 2024-06-17 18:37:35 +07:00
asep.komarudin
d9a3cc4dad enc: update config 2024-06-17 18:21:24 +07:00
asep.komarudin
e072b40f3d add: dap config for php 2024-06-17 17:31:09 +07:00
asep.komarudin
db9ed03df2 add: dap config for javascript 2024-06-17 15:40:52 +07:00
asep.komarudin
e2fd81f115 add: config dap 2024-06-16 21:45:19 +07:00
asep.komarudin
19f44f754d add: dap virtual text 2024-06-16 21:41:17 +07:00
asep.komarudin
368838347c fix: dap dependencies nvim-nio 2024-06-16 21:37:17 +07:00
asep.komarudin
5bd883a99c enc: update default config 2024-06-16 09:00:47 +07:00
asep.komarudin
489b9491ab enc: set global config dasboard to pcode 2024-06-15 07:06:45 +07:00
asep.komarudin
66c6917a73 enc: remove line number on http file type 2024-06-15 05:54:28 +07:00
asep.komarudin
2839d4106b enc: add simplify config 2024-06-14 22:33:11 +07:00
asep.komarudin
8c91594e60 enc: add config rest client 2024-06-14 22:21:19 +07:00
asep.komarudin
61b4120e30 enc: add refactoring 2024-06-14 11:25:19 +07:00
asep.komarudin
e16678fc29 add: refactoring config 2024-06-14 11:03:00 +07:00
asep.komarudin
ec3ec5ea1e enc: database key mappings 2024-06-14 09:54:24 +07:00
asep.komarudin
384c0b5768 enc: lua format custem 2024-06-14 08:40:35 +07:00
asep.komarudin
65857a4226 enc: global variable pcode 2024-06-14 08:21:36 +07:00
asep.komarudin
ecc54b9f87 add: icon run and test 2024-06-14 07:01:34 +07:00
asep.komarudin
cbd0b55458 add: neotest jest config 2024-06-14 06:46:42 +07:00
asep.komarudin
7482132068 fix: nvim-notify background 2024-06-13 16:51:54 +07:00
asep.komarudin
be59c58be4 fix: disable line number in dbout 2024-06-13 11:46:09 +07:00
asep.komarudin
d44e2d92ae fix: DBUI open tab 2024-06-12 19:31:30 +07:00
asep.komarudin
faebd74eff Merge branch 'v2' 2024-06-12 18:40:12 +07:00
asep.komarudin
9dbcd4b755 add: config for database management 2024-06-12 18:38:25 +07:00
asep.komarudin
17f2ffe48b add: example config database ui 2024-06-11 16:35:50 +07:00
asep.komarudin
75a484306b fix: codeium new version 2024-06-11 11:52:18 +07:00
asep.komarudin
b5cc229ee8 add: eagle config example 2024-06-10 22:30:10 +07:00
asep.komarudin
51bea4df6d add: custem ui database management 2024-06-10 20:19:27 +07:00
asep.komarudin
ba64a3073c add: DBUI config example 2024-06-10 19:44:20 +07:00
asep.komarudin
27f4a6016d fix: onedark vertical line color 2024-06-09 19:04:01 +07:00
asep.komarudin
d1481038d6 rollback 2024-06-09 17:26:45 +07:00
asep.komarudin
8ae7bbb8d2 fix: codeium not working with new release 2024-06-09 17:25:33 +07:00
asep.komarudin
be18e2df41 add: default theme 2024-06-09 11:55:39 +07:00
asep.komarudin
3f55a10738 enc: telescope jetbrans theme 2024-06-08 09:59:20 +07:00
asep.komarudin
13c5df174c fix: color icon event to verylazy 2024-06-08 09:11:54 +07:00
asep.komarudin
33335939d0 enc: move config auto br from autocmd to vertcolumn config 2024-06-08 06:10:53 +07:00
asep.komarudin
e7cf581b2a fix: remove lunar theme 2024-06-07 23:16:06 +07:00
asep.komarudin
27405a0f8a fix: typo telscope 2024-06-07 23:12:05 +07:00
asep.komarudin
090f4c3d24 fix: typo pvode 2024-06-07 23:07:07 +07:00
asep.komarudin
c5280b8d08 add: telescope theme 2024-06-07 20:15:49 +07:00
asep.komarudin
56e8da9c8e enc: dashboard quit info 2024-06-07 18:53:54 +07:00
asep.komarudin
babcd3c9dd add: validation for whichkey chat 2024-06-07 18:42:28 +07:00
asep.komarudin
a51db2cbc7 add: auto cmd for color column 2024-06-07 18:38:28 +07:00
asep.komarudin
73f85d9584 add: create autocmd for ignore indentscupe 2024-06-07 12:26:53 +07:00
asep.komarudin
c8798367cc add: config format timeout_ms 2024-06-07 07:15:53 +07:00
asep.komarudin
520ae101c6 fix : #8 warning [LSP][null-ls] timeout 2024-06-07 07:02:06 +07:00
asep.komarudin
55432b7b13 add: update codeium statusline icon 2024-06-07 06:27:33 +07:00
asep.komarudin
bbc23eae04 add: adaptive color icon 2024-06-06 21:53:03 +07:00
asep.komarudin
836ac75161 fix: error conflict vscode folder 2024-06-06 08:50:58 +07:00
asep.komarudin
da416417d8 add:codeium config 2024-06-05 14:17:54 +07:00
asep.komarudin
a0c81f7286 add: codeium config 2024-06-05 12:28:31 +07:00
asep.komarudin
8677303d6d add: update dracula theme 2024-06-03 19:44:01 +07:00
asep.komarudin
a80dab94b9 add: update config 2024-06-03 18:52:38 +07:00
asep.komarudin
50fffa04d7 add: perapihan plugins 2024-06-03 09:03:01 +07:00
asep.komarudin
130f910923 remove: cmp tag, cmpcalc, cmprg 2024-06-03 08:43:06 +07:00
asep.komarudin
07c6b8ce49 add: update config colorscheme 2024-06-03 07:49:17 +07:00
asep.komarudin
4bbbf4bc75 add: config for disable cmp doc 2024-06-02 19:31:26 +07:00
asep.komarudin
72ff763f68 add: miniaimate 2024-06-02 06:48:51 +07:00
asep.komarudin
e50fb19878 add: update lib 2024-06-01 14:54:44 +07:00
asep.komarudin
841ba18d1c add: update config tailwind cdd cmp colorizer 2024-06-01 08:18:15 +07:00
asep.komarudin
8a78fd41df add: update nvim tree float config 2024-06-01 05:15:35 +07:00
asep.komarudin
1f5323945b add: config nvim tree float 2024-05-31 14:00:49 +07:00
asep.komarudin
990f8606e0 add: update config 2024-05-31 13:35:27 +07:00
asep.komarudin
896295d5ec add lualine ignore lspinfo 2024-05-30 19:52:17 +07:00
asep.komarudin
b319a12e99 add: update config 2024-05-30 19:03:34 +07:00
asep.komarudin
93e5e8860f add: update config 2024-05-30 06:59:39 +07:00
asep.komarudin
7ff08f77c5 add: update noice popup border color 2024-05-30 06:20:57 +07:00
asep.komarudin
343275393e add: update visual multi support nvim v 0.10 2024-05-29 21:40:14 +07:00
asep.komarudin
c2eaa2c6a1 add: update git branch icon 2024-05-29 21:01:36 +07:00
asep.komarudin
4164fe238b add: no branch icon 2024-05-29 20:48:09 +07:00
asep.komarudin
ffbb97621d add: lualine status mode config 2024-05-29 16:15:20 +07:00
asep.komarudin
b626bce72a add: update config 2024-05-29 07:45:28 +07:00
asep.komarudin
ff6c42d6ff add: update config 2024-05-28 20:50:20 +07:00
asep.komarudin
1f603c154f add: update 2024-05-28 19:11:21 +07:00
asep.komarudin
a7669d5218 add: color simulation 2024-05-28 18:55:08 +07:00
asep.komarudin
bd39c9ee5a add: update config colorscheme 2024-05-28 15:48:25 +07:00
asep.komarudin
8cf225424b add: config colorscheme dracula jetbrains theme 2024-05-28 11:53:17 +07:00
asep.komarudin
962640b935 add: update config color scheme 2024-05-27 21:20:27 +07:00
asep.komarudin
30537367c1 add: config colorscheme solarized osaka 2024-05-26 20:27:44 +07:00
asep.komarudin
62d393b0f9 add: update colorscheme github dark 2024-05-26 11:29:10 +07:00
asep.komarudin
2e251f9723 fix: error config neoscroll 2024-05-25 18:50:20 +07:00
asep.komarudin
a0d4196295 add: update default config 2024-05-25 09:32:51 +07:00
asep.komarudin
8a10c63f32 add: update config colorscheme 2024-05-25 09:28:49 +07:00
asep.komarudin
8f2a003224 add: update guvbox config 2024-05-25 06:14:47 +07:00
asep.komarudin
15bd56ecbd update config colorscheme 2024-05-24 23:43:38 +07:00
asep.komarudin
4d3e980711 add: update config colorscheme 2024-05-24 19:20:23 +07:00
asep.komarudin
08b5d705d7 add: treesitter icon 2024-05-24 08:16:42 +07:00
asep.komarudin
620b1cd406 add: update config lualine 2024-05-23 21:29:02 +07:00
asep.komarudin
76b8b56b5c add: update lueline theme 2024-05-23 21:02:23 +07:00
asep.komarudin
7f1637b6e8 add: lualine template 2024-05-23 18:08:15 +07:00
asep.komarudin
c575f0b93f add: lualine theme 2024-05-23 14:15:21 +07:00
asep.komarudin
c33971749e add: custom lualine theme 2024-05-22 20:42:09 +07:00
asep.komarudin
3c07e3d75e add: disable lualine if crunner open 2024-05-22 17:33:15 +07:00
asep.komarudin
23cd80d925 add: stylua config file 2024-05-22 06:44:30 +07:00
asep.komarudin
5179bb1047 fix: support neovim v0.10 2024-05-22 06:39:38 +07:00
asep.komarudin
f00aeb3add add: update config neovide 2024-05-21 22:37:48 +07:00
asep.komarudin
d1e7d99d27 add: update default config 2024-05-21 19:49:53 +07:00
asep.komarudin
f468320299 add: update config 2024-05-21 18:42:12 +07:00
asep.komarudin
eb42d864e8 add: update config 2024-05-21 16:22:19 +07:00
asep.komarudin
f52422ffad fix bug: #7 2024-05-21 15:44:54 +07:00
asep.komarudin
b87a267f96 add: update c++ installer 2024-05-21 15:30:02 +07:00
asep.komarudin
4b0c9e358c add: update support nvim 0.95+ 2024-05-21 15:27:40 +07:00
asep.komarudin
24320e58f8 add: update config global variable 2024-05-21 15:17:31 +07:00
asep.komarudin
e59e8dba26 add: border rounded on lspinfo 2024-05-21 15:01:19 +07:00
asep.komarudin
377c23c156 add: update config 2024-05-21 14:34:49 +07:00
asep.komarudin
a7726a6b33 add: config global variable 2024-05-21 14:20:50 +07:00
asep.komarudin
77436b89c4 add: update config modular 2024-05-21 09:15:27 +07:00
asep.komarudin
875631fc4e add: tidy up the code, more modular 2024-05-21 08:37:12 +07:00
asep.komarudin
1f424a1225 add: tidy up the code, more modular 2024-05-21 08:33:21 +07:00
asep.komarudin
1545d8335d add: reconfig lualine, add treesitter status 2024-05-20 20:06:36 +07:00
asep.komarudin
41acbb2679 add: update config lualine 2024-05-20 13:08:37 +07:00
asep.komarudin
f62b7c6227 add: treesitter status line info 2024-05-20 12:52:01 +07:00
asep.komarudin
29ce43859b add: update plugins 2024-05-20 08:46:44 +07:00
asep.komarudin
e9f5f863cf Merge branch 'v2' 2024-05-20 08:45:16 +07:00
asep.komarudin
90a34ec6e9 add: update config v2.1.0 2024-05-20 08:42:59 +07:00
asep.komarudin
111556ef39 add: update config 2024-05-20 08:12:43 +07:00
asep.komarudin
88a59af55b add: update config 2024-05-20 06:21:21 +07:00
asep.komarudin
7fd4d6f336 add: config support rainbow delimiter nvim v.0.10 2024-05-19 23:01:36 +07:00
asep.komarudin
63de9b2074 add: update ts rainbow for neovim v 0.10 2024-05-19 22:25:01 +07:00
asep.komarudin
222154cce9 add: update config support ts ts rainbow 2024-05-19 21:50:27 +07:00
asep.komarudin
82ab2d8832 update config 2024-05-19 20:00:20 +07:00
asep.komarudin
84a1939b9d update config 2024-05-19 15:56:09 +07:00
asep.komarudin
e4e014b05f add: update config 2024-05-19 13:13:06 +07:00
asep.komarudin
b95099877d add: update config 2024-05-19 09:50:55 +07:00
asep.komarudin
1d2a590c80 add: reconfig 2024-05-19 08:46:33 +07:00
asep.komarudin
3af64d720d add: update 2024-05-18 17:16:14 +07:00
asep.komarudin
1be5da2325 add: update 2024-05-18 17:13:52 +07:00
asep.komarudin
ae93f70caf add: update config 2024-05-18 16:38:57 +07:00
asep.komarudin
b3a0428b01 add: update 2024-05-18 16:17:29 +07:00
asep.komarudin
0d2d1e65ab add: update 2024-05-18 15:29:54 +07:00
asep.komarudin
d9f7dd2533 Merge branch 'v2' 2024-05-18 11:33:29 +07:00
asep.komarudin
ade37580fc add: update config 2024-05-18 11:29:20 +07:00
asep.komarudin
ebb2535ec2 add: update 2024-05-18 08:32:51 +07:00
asep.komarudin
24292ff1b9 add: update config 2024-05-17 18:05:50 +07:00
asep.komarudin
880a48e1a3 add: update config 2024-05-17 07:05:11 +07:00
asep.komarudin
a2b9217202 add: update config 2024-05-13 07:26:02 +07:00
asep.komarudin
697454eecf add: update config 2024-05-12 15:18:53 +07:00
asep.komarudin
354b276c72 Merge branch 'v2' into main 2024-05-09 12:53:24 +07:00
asep.komarudin
e6df88afa4 add: update config 2024-05-09 12:47:07 +07:00
asep.komarudin
ee2321f4b0 add: update plugins patch 2024-05-08 20:34:34 +07:00
asep.komarudin
3952406bab add: update patch plugins 2024-05-08 07:53:02 +07:00
asep.komarudin
0008ef2396 add: update config 2024-05-07 15:11:04 +07:00
asep.komarudin
be7f819532 add: update config 2024-05-06 08:11:07 +07:00
asep.komarudin
3a93cb9d58 add: update patch plugins 2024-05-01 07:35:53 +07:00
asep.komarudin
d5d7c8f3f9 add: update 2024-04-29 07:11:30 +07:00
asep.komarudin
6f1d1cebe5 add: update 2024-04-28 07:42:56 +07:00
asep.komarudin
1fa66b7667 add: update config github theme 2024-04-27 08:34:41 +07:00
asep.komarudin
474b9a96b8 update 2024-04-26 13:58:35 +07:00
asep.komarudin
b318ced2cf add: update config 2024-04-25 07:56:31 +07:00
asep.komarudin
6da1a73df0 add: update config 2024-04-25 07:26:16 +07:00
asep.komarudin
8b1ecc923b add: update config 2024-04-25 07:02:03 +07:00
asep.komarudin
60b34681f6 add: update nvimtreefindfiletoggle 2024-04-24 18:57:10 +07:00
asep.komarudin
9005047956 add: update config 2024-04-24 08:46:30 +07:00
asep.komarudin
6153dea7ff add: update config 2024-04-23 18:56:29 +07:00
asep.komarudin
c7af34ff72 add: update colors scheme config 2024-04-22 08:55:33 +07:00
asep.komarudin
2c60cbeb7c add: update github theme 2024-04-21 19:50:14 +07:00
asep.komarudin
c7ba5cb856 add: update config 2024-04-21 17:11:13 +07:00
asep.komarudin
9a59894b68 add: update config 2024-04-21 15:48:23 +07:00
asep.komarudin
515492b002 add: update config theme onedarkpro 2024-04-21 13:28:26 +07:00
asep.komarudin
7a06e075df add: update config 2024-04-21 10:41:45 +07:00
asep.komarudin
1cacea97f6 update 2024-04-21 09:12:19 +07:00
asep.komarudin
f4defddd52 add: update 2024-04-21 09:10:08 +07:00
asep.komarudin
1b1f8b9967 add: migrate wilder to cmp cmdline 2024-04-19 21:16:27 +07:00
asep.komarudin
f00438c822 add: config php support single file 2024-04-19 19:59:30 +07:00
asep.komarudin
68795d84bf add: update config 2024-04-19 18:36:56 +07:00
asep.komarudin
e2a3cf864b add: update md icon 2024-04-19 06:13:19 +07:00
asep.komarudin
a81806cab8 add: update config 2024-04-18 07:17:54 +07:00
asep.komarudin
c651a8ca42 update nerdfont icon 2024-04-15 17:15:47 +07:00
asep.komarudin
4ce5f82265 add: update icon dashboard 2024-04-15 06:02:20 +07:00
asep.komarudin
9288c81124 add: update default config font 2024-04-15 05:49:12 +07:00
asep.komarudin
3afde9ce70 add: master icon 2024-04-14 23:40:59 +07:00
asep.komarudin
e328116fbd add: update config 2024-04-14 23:05:28 +07:00
asep.komarudin
0c18ab04c8 fix nvim fold for jsx 2024-04-14 20:31:00 +07:00
asep.komarudin
00fb75edef update config for NerdFont v3.2.1 2024-04-14 18:23:27 +07:00
asep.komarudin
5ddbe5b35e update config for NerdFont v3.2.1 2024-04-14 17:27:46 +07:00
asep.komarudin
3ca400d195 initial new update icon 2024-04-14 12:13:15 +07:00
asep.komarudin
aec3c632f0 add: prettier icon 2024-04-13 21:58:14 +07:00
asep.komarudin
5018282996 update 2024-04-13 20:17:30 +07:00
asep.komarudin
631a6a9bd5 update 2024-04-13 19:09:42 +07:00
asep.komarudin
b347310c93 update 2024-04-13 08:40:35 +07:00
asep.komarudin
b89074da6b update 2024-04-13 08:35:24 +07:00
asep.komarudin
b616038b19 add: update config 2024-04-12 23:26:42 +07:00
asep.komarudin
e9f5251e68 add: udpate 2024-04-12 23:05:29 +07:00
asep.komarudin
6b44f38cb0 add: update config add indent scupe 2024-04-12 18:22:27 +07:00
asep.komarudin
e36bb18dd9 add: update config fold 2024-04-12 16:38:44 +07:00
asep.komarudin
eacf0b67e9 enc: update config 2024-04-12 12:13:19 +07:00
asep.komarudin
1af3d78e3c update 2024-04-12 10:48:32 +07:00
asep.komarudin
31c272d49d update 2024-04-12 08:57:11 +07:00
asep.komarudin
632465a3fd update 2024-04-12 07:56:50 +07:00
asep.komarudin
b31a56aaca enc: nvim ufo config 2024-04-12 07:44:49 +07:00
asep.komarudin
6e1c9151e0 enc: update config 2024-04-12 07:09:29 +07:00
asep.komarudin
78364c3636 add: update config nvim ufo 2024-04-11 22:12:20 +07:00
asep.komarudin
ebdbf34d82 add: config nvim-tree git true 2024-04-11 20:20:08 +07:00
asep.komarudin
d2af11595d add: update vim-visual-multi config 2024-04-11 15:57:36 +07:00
asep.komarudin
6c62067226 add: cahange bg color visual multi 2024-04-11 14:39:07 +07:00
asep.komarudin
941cd9a7e2 add: update icon items 2024-04-11 13:07:12 +07:00
asep.komarudin
55e27f45f7 add: update config 2024-04-11 11:08:08 +07:00
asep.komarudin
d2799f9f3f add: update tune config 2024-04-10 20:34:02 +07:00
asep.komarudin
86d1629612 add: update config 2024-04-09 17:11:50 +07:00
asep.komarudin
22b81afe5f add: update config (tuning speed) 2024-04-09 05:51:53 +07:00
asep.komarudin
83ef9398c8 add: update config 2024-04-08 20:43:52 +07:00
asep.komarudin
99e49e4087 add: update config 2024-04-07 18:40:56 +07:00
asep.komarudin
41061a53f2 add: update patch plugins 2024-04-06 03:32:53 +07:00
asep.komarudin
ecebcfe40c add: update patch file 2024-04-04 12:16:40 +07:00
asep.komarudin
76117ededa add: update config 2024-03-31 16:35:21 +07:00
asep.komarudin
3100854e08 add: update config 2024-03-29 19:31:12 +07:00
asep.komarudin
259441b027 add: update config flod ufo 2024-03-29 16:57:15 +07:00
asep.komarudin
e2ba1a6fb2 add: nvim fold config 2024-03-29 16:33:42 +07:00
asep.komarudin
5518885b31 add: update config ufo 2024-03-28 18:40:37 +07:00
asep.komarudin
cd9dcc6c26 add: update plugins 2024-03-28 12:17:30 +07:00
asep.komarudin
7d9072b9d6 add: update patch 2024-03-27 17:31:54 +07:00
asep.komarudin
a3bf20286d add: update patch plugins 2024-03-27 07:50:16 +07:00
asep.komarudin
2727f2850c add: update theme tokyonight 2024-03-24 10:12:20 +07:00
asep.komarudin
2e07bb77f0 add: update config colorscheme tokyonight 2024-03-23 13:49:01 +07:00
asep.komarudin
be847203b7 add: update folder icon 2024-03-23 06:03:30 +07:00
asep.komarudin
ca42cc75a1 update: change icon and close current buffer 2024-03-23 05:55:06 +07:00
asep.komarudin
744cf511b2 add: update patch plugins 2024-03-22 21:39:56 +07:00
asep.komarudin
4585d4604c add: update patch plugins 2024-03-22 05:01:38 +07:00
asep.komarudin
6acb3af8ab add: tabaction key mapping 2024-03-21 08:08:27 +07:00
asep.komarudin
df209391f6 add: update patch plugins 2024-03-20 19:56:08 +07:00
asep.komarudin
a19de09665 update 2024-03-20 13:11:40 +07:00
asep komarudin
ef42e8a02c remove: nvim lsp installer 2024-03-20 04:47:13 +07:00
asep komarudin
fc175ae9ad add: update custom nvim tree, remove root folder 2024-03-19 04:55:20 +07:00
asep komarudin
e5a9b6e638 add: update config indent-blankline to BufWinEnter 2024-03-18 21:09:19 +07:00
asep komarudin
802f269942 add: update config onedark 2024-03-17 11:11:18 +07:00
asep komarudin
b06bf54e84 add: update config color scheme onedark tsx and jsx 2024-03-17 10:52:51 +07:00
asep komarudin
8b336a50a4 add: update config github theme 2024-03-16 13:08:51 +07:00
asep komarudin
dd6086fcf3 add: update config 2024-03-16 07:21:34 +07:00
asep komarudin
34162856e1 add: update config github theme 2024-03-16 07:13:38 +07:00
asep komarudin
6ab26e38bc add: update congih 2024-03-16 06:49:43 +07:00
asep komarudin
f0b06ee780 add: github nvim theme config 2024-03-16 06:33:56 +07:00
asep komarudin
3563dd28e9 update config 2024-03-15 23:10:04 +07:00
asep komarudin
9a2cbed5a8 add: update config 2024-03-13 19:33:59 +07:00
asep komarudin
5abaf08fa4 add: config color scheme one dark 2024-03-13 07:12:04 +07:00
asep komarudin
601de90790 update 2024-03-12 20:26:51 +07:00
asep komarudin
ba219f1e96 add: config color scheme 2024-03-12 20:25:12 +07:00
asep komarudin
6f68c8d7b0 add: config color theme 2024-03-12 08:10:10 +07:00
asep komarudin
e3bf405a83 add: config theme 2024-03-12 06:50:05 +07:00
asep komarudin
800581218c add: config theme 2024-03-12 05:39:12 +07:00
asep komarudin
9ab813ce46 add: config theme 2024-03-12 05:05:42 +07:00
asep komarudin
c51f92053f add: update config theme 2024-03-11 21:07:15 +07:00
asep komarudin
bb946438c1 add: update config color scheme 2024-03-11 18:01:06 +07:00
asep komarudin
3ebdfd418c update 2024-03-11 13:08:46 +07:00
asep komarudin
b2e5d989f9 add: update config theme 2024-03-11 12:29:09 +07:00
asep komarudin
023d749b60 add: update config color scheme 2024-03-10 20:32:59 +07:00
asep komarudin
8748ef729f add: update config 2024-03-10 13:10:27 +07:00
asep komarudin
641095734b update 2024-03-10 08:24:56 +07:00
asep komarudin
7b8477449a add: config terafox theme 2024-03-10 07:32:28 +07:00
asep komarudin
4832f54338 add: update config 2024-03-09 22:23:41 +07:00
asep komarudin
2ab55ab08d add: update patch plugin 2024-03-09 19:17:55 +07:00
asep komarudin
ed2a7f1ff0 add: custom dracula theme 2024-03-09 17:31:25 +07:00
asep komarudin
21983ec6ed add: update config color scheme one dark 2024-03-09 17:05:30 +07:00
asep komarudin
fce7629d3c add: custom config material 2024-03-09 16:16:10 +07:00
asep komarudin
d7df5843dc add:config tokyonight theme 2024-03-09 15:51:15 +07:00
asep komarudin
ad93d71272 add: config color scheme dracula 2024-03-09 15:42:18 +07:00
asep komarudin
de012fe94d add: update config tokyonight theme 2024-03-09 15:10:16 +07:00
asep komarudin
0f86826268 add: config dracula theme 2024-03-09 15:05:09 +07:00
asep komarudin
a121508f39 add: update config 2024-03-09 08:06:10 +07:00
asep komarudin
6e55fe895d add: update keymap ctrl + v on insert mode 2024-03-08 11:48:59 +07:00
asep komarudin
aa58ea9669 add: tokyonight config colorscheme 2024-03-06 23:27:30 +07:00
asep komarudin
ceb9038b6a add: custom theme tokyoniht background color 2024-03-06 19:16:30 +07:00
asep komarudin
62e8d40e43 add: keymap reorgenize bufferline 2024-03-06 07:34:49 +07:00
asep komarudin
f99a244c36 add: auto cmd for create folder and file 2024-03-05 23:18:08 +07:00
asep komarudin
73fb95878b add: default title tab wezterm 2024-03-05 18:12:48 +07:00
asep komarudin
f23060a0f2 add: set title wezterm with current folder name 2024-03-05 15:20:53 +07:00
asep komarudin
17a0574662 add: patch plugins 2024-03-05 10:18:47 +07:00
asep komarudin
2e3e6aac8d add: icon zip file 2024-03-04 22:26:34 +07:00
asep komarudin
2a1987907f add: update icon branch 2024-03-04 07:45:01 +07:00
asep komarudin
04eb24ce95 add: ignore startuptime 2024-03-04 01:10:21 +07:00
asep komarudin
93ba729139 add: laravel icon 2024-03-03 18:33:57 +07:00
asep komarudin
ee5301ba54 add: default loading from fidget to lspprogress 2024-03-03 07:23:42 +07:00
asep komarudin
53b42062e3 add: remove of unused plugins 2024-03-02 18:32:21 +07:00
asep komarudin
02ea286c83 add: create new config for denols 2024-03-02 13:11:48 +07:00
asep komarudin
4bf3cb08ad add: vite.config.ts icon 2024-03-01 23:49:05 +07:00
asep komarudin
835cea9f5e add: key maps CTRL + A 2024-03-01 22:11:16 +07:00
asep komarudin
549a63a3da add: move config to individual file 2024-03-01 15:19:53 +07:00
asep komarudin
554d68c7ae add: update config 2024-02-29 20:33:22 +07:00
asep komarudin
c045fc1f63 add: custom keymaps 2024-02-29 06:45:01 +07:00
asep komarudin
20e8fc9b55 add: none-ls-extras.nvim to none-ls.nvim 2024-02-28 21:58:18 +07:00
asep komarudin
b7c4310614 add: overide lualine config 2024-02-28 15:02:41 +07:00
asep komarudin
8cab416b15 update 2024-02-27 22:50:50 +07:00
asep komarudin
0694a45e65 update 2024-02-27 21:43:16 +07:00
asep komarudin
6c7fc996cd add: update config overide lualine 2024-02-27 21:40:01 +07:00
asep komarudin
7b323af8cf add: overide lualine 2024-02-27 20:47:54 +07:00
asep komarudin
6e1e45560f update: hover background color 2024-02-27 14:45:41 +07:00
asep komarudin
f6250a8153 add: migrate from null-ls.nvim to none-ls.nvim 2024-02-27 12:22:51 +07:00
asep komarudin
7b4d629ab0 add: add ignore config telescope selection transparant background 2024-02-26 13:21:38 +07:00
asep komarudin
c395d2d54a add: add uninstall procedure 2024-02-26 12:49:39 +07:00
asep komarudin
2cceb76b43 add: auto command config 2024-02-26 10:30:07 +07:00
asep komarudin
70428b51b5 fix: transparant refrest command 2024-02-26 08:19:33 +07:00
asep komarudin
ff2b881ef8 add: transparant config for all theme 2024-02-26 08:10:39 +07:00
asep komarudin
27ffa22293 add: mapping wezterm new tab and load new window 2024-02-25 18:52:25 +07:00
asep komarudin
32b28a13db delete: remove not used image 2024-02-25 17:22:46 +07:00
asep komarudin
bc3bdec4f8 add: update config blink cursor 2024-02-25 16:45:45 +07:00
asep komarudin
97dda35744 fix: transparant background 2024-02-24 22:58:09 +07:00
asep komarudin
38df56571a fix: transparant background 2024-02-24 22:02:53 +07:00
asep komarudin
1c9deb6b07 add: load new window terminal alacritty 2024-02-24 18:17:08 +07:00
asep komarudin
d00563a0a8 add: transparant img 2024-02-24 09:13:56 +07:00
asep komarudin
2a55b5ff5b add: config transparant neotree 2024-02-24 08:58:26 +07:00
asep komarudin
9b8a3f1cf7 add: config transparant NvimTree, NeoTree, Which-Key, Lazy 2024-02-24 08:57:58 +07:00
asep komarudin
3ed99376c3 add: tokyonight cursor hilight trasparant backround 2024-02-23 23:10:04 +07:00
asep komarudin
cc3044f070 add: config transparant background 2024-02-23 22:36:52 +07:00
asep komarudin
808891c37b fix: switch lsp to dignostic position 2024-02-23 20:12:48 +07:00
asep komarudin
9fd84a85f3 fix: disable format if lsp undefined 2024-02-23 19:49:22 +07:00
asep komarudin
8dee08aca6 update: Codeioum BupEnter 2024-02-22 21:40:32 +07:00
asep komarudin
8cf4a351bc update: update config lualine 2024-02-22 21:10:00 +07:00
asep komarudin
aaa617c7e9 update: config lualine 2024-02-22 17:29:13 +07:00
asep komarudin
756dfa19fd update: update config lualine 2024-02-22 16:59:35 +07:00
asep komarudin
7f1d7df0c8 add: config default theme 2024-02-22 15:59:20 +07:00
asep komarudin
2751234228 update: config treesitter typescriptreact 2024-02-21 17:28:19 +07:00
asep komarudin
cb486e35cb update: config lsp react tsx 2024-02-21 17:19:44 +07:00
asep komarudin
60bb763639 fix: mason lsp config 2024-02-21 11:57:06 +07:00
asep komarudin
b04a8d86c6 add: unregister lsp 2024-02-21 00:19:46 +07:00
asep komarudin
7efd41b1ba update: gradle run in terminal 2024-02-20 21:22:25 +07:00
asep komarudin
e22c111d5d add: config kotlin language server 2024-02-20 20:54:04 +07:00
asep komarudin
055e75a4b8 fix: comment string support all type 2024-02-20 14:23:17 +07:00
asep komarudin
ccb2a627aa update: liveserver on new tab 2024-02-20 11:05:52 +07:00
asep komarudin
f52834f1b8 fix: add validation if dap not installed 2024-02-20 10:38:33 +07:00
asep komarudin
b302971eb3 add: disable line number if terminal mode 2024-02-20 10:14:51 +07:00
asep komarudin
7a1e430fee update: sync patch plugins 2024-02-20 09:25:27 +07:00
asep komarudin
147a95f7bb fix: waring lowarecase to uppercase 2024-02-19 20:53:54 +07:00
asep komarudin
5d65f5b312 fix: undefined vim global variable 2024-02-19 20:29:46 +07:00
asep komarudin
5b031084f0 add : add config java jdtls 2024-02-19 19:40:19 +07:00
asep komarudin
fafb1c318c add: icon classpath 2024-02-19 17:23:00 +07:00
asep komarudin
ca2157172a add: add icon for java project 2024-02-19 17:13:24 +07:00
asep komarudin
d3d7d566da fix: remove auto pairs /^> 2024-02-19 14:36:43 +07:00
asep komarudin
2af9f21559 fix: update jsx to tsx 2024-02-18 21:35:22 +07:00
asep komarudin
a25f1abde3 fix: tsx support lsp and treesitter 2024-02-18 21:29:22 +07:00
asep komarudin
523588ee4f add: update patch plugins 2024-02-17 16:24:18 +07:00
asep komarudin
aeb724aa07 fix: contex-ts-commentstring with comment.nvim integration 2024-02-17 15:27:41 +07:00
asep komarudin
6274a2af41 fix: disable htop ^& bottom 2024-02-17 08:27:38 +07:00
asep komarudin
362ccb1ac0 add: update config neovide 2024-02-16 12:53:19 +07:00
asep komarudin
c109c16c9b fix: to uppercase local variable _CLOSE_BUFFER 2024-02-15 07:26:34 +07:00
asep komarudin
17c1335cd6 add: add key map live server, close buffer 2024-02-14 22:40:05 +07:00
asep komarudin
02ec73abf4 add: update patch plugins 2024-02-14 11:28:42 +07:00
asep komarudin
b40507c6c0 add: update plugin patch 2024-02-13 06:12:20 +07:00
asep komarudin
3108de6bdc update : update puglin pach 2024-02-12 07:16:16 +07:00
asep komarudin
5adbc49ba2 update: update patch plugins 2024-02-11 20:45:34 +07:00
asep komarudin
80f1a86764 update 2024-02-07 07:50:30 +07:00
asep komarudin
42e2d4eeaf update 2024-02-05 07:44:23 +07:00
asep komarudin
364926250d update 2024-02-04 10:58:52 +07:00
asep komarudin
7a03f9d2b2 update 2024-02-03 19:29:31 +07:00
asep komarudin
7300ba790e update 2024-02-02 07:58:30 +07:00
asep komarudin
38b1f925c3 update 2024-01-31 07:49:39 +07:00
asep komarudin
b205e35103 update 2024-01-29 16:31:16 +07:00
asep komarudin
6603ae18c9 update 2024-01-26 07:42:27 +07:00
asep komarudin
53f5ac7425 update 2024-01-23 18:00:23 +07:00
asep komarudin
ae77918dc5 update 2024-01-22 10:23:24 +07:00
asep komarudin
4db9506dab update 2024-01-21 16:34:03 +07:00
asep komarudin
2ba0a67f57 update 2024-01-18 19:13:16 +07:00
asep komarudin
cc5b1afb82 update 2024-01-17 06:01:45 +07:00
asep komarudin
3449593bc5 update 2024-01-15 08:07:30 +07:00
asep komarudin
b0908a7ae5 update 2024-01-14 00:43:36 +07:00
asep komarudin
44bfffb0c9 update add nerfont icon 2024-01-10 22:51:55 +07:00
asep komarudin
5d54a160f9 update 2024-01-09 18:07:02 +07:00
asep komarudin
001262eab0 update 2024-01-08 23:45:21 +07:00
asep komarudin
98570055a4 update 2024-01-06 16:36:24 +07:00
asep komarudin
ca51351a77 update 2024-01-06 06:47:53 +07:00
asep komarudin
4b766110c9 update 2024-01-04 23:11:29 +07:00
asep komarudin
9fb4ad1cb1 update 2024-01-02 18:15:18 +07:00
asep komarudin
308b07a7a1 update keymaps doc 2024-01-01 20:36:52 +07:00
asep komarudin
2799eb7f7b update VIM Shortcuts most used 2024-01-01 20:25:53 +07:00
Asep Komarudin
27b939fcdd
Update README.md 2024-01-01 20:14:34 +07:00
Asep Komarudin
da95318bc0
Update README.md 2024-01-01 20:13:44 +07:00
Asep Komarudin
dc78e45d46
Update README.md 2024-01-01 20:06:37 +07:00
asep komarudin
1479f1e3ae update which-key live-server 2024-01-01 20:04:15 +07:00
asep komarudin
616c5384e2 update 2023-12-31 21:07:12 +07:00
asep komarudin
f3d45a4e03 update to english 2023-12-31 14:09:15 +07:00
asep komarudin
8a8e9d6ae2 update 2023-12-31 12:37:17 +07:00
asep komarudin
adfd26ba59 update icon 2023-12-31 08:15:34 +07:00
asep komarudin
caf3833ea2 update 2023-12-30 09:46:28 +07:00
asep komarudin
4c30893658 fix: keymaps rendo CTRL+r 2023-12-29 14:56:29 +07:00
asep komarudin
8254e41ef5 update 2023-12-28 22:31:43 +07:00
asep komarudin
3edacc24b8 update config vsocde-neovim 2023-12-27 07:34:20 +07:00
asep komarudin
4489edebab update 2023-12-26 20:24:29 +07:00
asep komarudin
ccff8a9728 update nvim vscode config 2023-12-26 13:31:18 +07:00
asep komarudin
aad95a29a8 update neovim-vscode config 2023-12-26 11:19:42 +07:00
asep komarudin
35279181d6 update config integrasion vscode 2023-12-26 08:16:29 +07:00
asep komarudin
a677ddbf4a update keymap live server -^> leader t l 2023-12-24 05:32:22 +07:00
asep komarudin
d260e9f444 update 2023-12-23 11:53:41 +07:00
asep komarudin
b694f1ec6b update 2023-12-22 20:54:26 +07:00
asep komarudin
977392be0b update 2023-12-22 07:46:30 +07:00
asep komarudin
2244ebf305 update 2023-12-21 07:59:34 +07:00
asep komarudin
f7b1e3dd38 update config blink cursor 2023-12-20 19:40:13 +07:00
asep komarudin
dffa65097a update 2023-12-20 19:27:08 +07:00
asep komarudin
80fdff6651 update 2023-12-19 17:56:59 +07:00
asep komarudin
464d76829c update 2023-12-18 22:03:58 +07:00
asep komarudin
6f75fe35d0 update 2023-12-16 10:06:35 +07:00
asep komarudin
8cfe7974bb update 2023-12-12 07:44:32 +07:00
asep komarudin
ccd594f8af update 2023-12-11 08:12:49 +07:00
asep komarudin
8fb4d95e6c update keymap comment string 2023-12-10 17:55:15 +07:00
asep komarudin
6dfd9c49c1 update 2023-12-10 15:55:08 +07:00
asep komarudin
65ef17adfa update 2023-12-08 23:25:57 +07:00
asep komarudin
c3cabb4f3b update icon 2023-12-08 14:40:03 +07:00
asep komarudin
811a128d68 update 2023-12-07 17:05:33 +07:00
asep komarudin
b1b7c21851 update 2023-12-06 08:12:17 +07:00
asep komarudin
6863066868 nigrate sumneko_lua to lua_ls 2023-12-05 19:40:25 +07:00
asep komarudin
4da9b71ba1 update 2023-12-05 16:51:54 +07:00
asep komarudin
00fbd2f69a update 2023-12-04 18:07:37 +07:00
asep komarudin
7e80d12ed7 update 2023-12-04 06:17:33 +07:00
asep komarudin
9ec4469cbf update key map mason 2023-12-03 20:48:57 +07:00
asep komarudin
94f39c4a48 add icon svelte 2023-12-03 19:32:38 +07:00
asep komarudin
2febe9f1b9 update 2023-12-03 17:07:30 +07:00
asep komarudin
3d0bf5f8a5 update 2023-12-03 10:58:07 +07:00
asep komarudin
088ecb2b68 update 2023-12-03 09:02:59 +07:00
asep komarudin
50423be065 update copy paste key mapping 2023-12-02 21:10:56 +07:00
asep komarudin
90f281d542 add CTRL + A 2023-12-02 21:05:28 +07:00
asep komarudin
12cb6d6764 update 2023-12-02 12:48:39 +07:00
asep komarudin
c2b632d85d update 2023-12-02 10:51:13 +07:00
asep komarudin
41fec635ff update 2023-12-02 10:48:44 +07:00
asep komarudin
eabb4758df update icon 2023-12-02 10:40:41 +07:00
asep komarudin
9b3e3376e4 update 2023-12-02 09:38:29 +07:00
asep komarudin
767c87e887 update comment string config 2023-12-02 00:29:19 +07:00
asep komarudin
ba6b07f90a update config ts_comment_string 2023-12-01 21:56:39 +07:00
asep komarudin
47c6632566 update icon 2023-12-01 21:38:33 +07:00
asep komarudin
62807fea6b update prettier icon 2023-12-01 16:58:43 +07:00
asep komarudin
bb50466864 update git config nvim-tree 2023-12-01 11:36:30 +07:00
asep komarudin
b80aab149b update 2023-12-01 07:34:20 +07:00
asep komarudin
85419924c2 update 2023-11-30 23:53:17 +07:00
asep komarudin
5c5750e874 update 2023-11-30 08:04:47 +07:00
asep komarudin
10311584ad update 2023-11-27 22:40:40 +07:00
asep komarudin
426ec2b924 update 2023-11-24 23:04:04 +07:00
asep komarudin
c62dc32193 update 2023-11-22 14:00:20 +07:00
asep komarudin
8870d3e64c update 2023-11-21 07:24:49 +07:00
asep komarudin
e6ed2caf8b update 2023-11-19 22:52:35 +07:00
asep komarudin
6098577601 update 2023-11-17 23:46:21 +07:00
asep komarudin
c6d761aea3 update 2023-11-14 16:55:19 +07:00
asep komarudin
536e56865a update 2023-11-13 18:58:40 +07:00
asep komarudin
f3b3115969 update 2023-11-12 20:38:37 +07:00
asep komarudin
72290d5e5e update 2023-11-12 06:37:13 +07:00
asep komarudin
1aefe74b10 update 2023-11-11 20:58:21 +07:00
asep komarudin
a966d96c85 update 2023-11-09 20:25:42 +07:00
asep komarudin
045bfcf45c update 2023-11-09 19:57:51 +07:00
asep komarudin
19b9ac0940 update icon 2023-11-09 13:10:35 +07:00
asep komarudin
cf49035329 fix error toggle term 2023-11-09 10:31:30 +07:00
asep komarudin
868e12c91c update 2023-11-09 08:39:53 +07:00
asep komarudin
4d18cdc310 update 2023-11-06 22:39:55 +07:00
asep komarudin
c4172435b4 update 2023-11-06 08:39:23 +07:00
asep komarudin
57ea683887 update 2023-11-04 06:38:34 +07:00
asep komarudin
9df1b32048 update 2023-11-03 22:39:25 +07:00
asep komarudin
d86ac958a2 migrate ts-rainbo to ts-rainbow2 2023-11-01 10:36:43 +07:00
asep komarudin
e52160557a update 2023-11-01 10:10:51 +07:00
asep komarudin
721a871f36 update 2023-11-01 07:51:28 +07:00
asep komarudin
b66df562ce update 2023-11-01 05:26:54 +07:00
asep komarudin
f8b5619ee4 update 2023-10-31 00:07:03 +07:00
asep komarudin
475f342137 update 2023-10-29 13:49:40 +07:00
asep komarudin
79d667bb24 update 2023-10-28 06:14:47 +07:00
asep komarudin
46a266c803 update 2023-10-27 22:14:00 +07:00
asep komarudin
81d2c6f2df update 2023-10-24 20:39:55 +07:00
asep komarudin
75c292f528 update 2023-10-23 19:46:04 +07:00
asep komarudin
eebf25e404 update 2023-10-22 19:50:26 +07:00
asep komarudin
b519b593ea update 2023-10-21 07:43:04 +07:00
asep komarudin
885dc51494 update 2023-10-18 14:17:02 +07:00
asep komarudin
9617395760 update 2023-10-18 07:47:05 +07:00
asep komarudin
91ed6c52ee update 2023-10-17 06:32:15 +07:00
asep komarudin
6fd9024d6b update 2023-10-16 19:28:24 +07:00
asep komarudin
6c8444d9e3 update 2023-10-16 06:01:07 +07:00
asep komarudin
fa63000728 update 2023-10-15 01:35:35 +07:00
asep komarudin
77e970b137 update 2023-10-13 21:54:16 +07:00
asep komarudin
2c168d8552 update 2023-10-12 05:48:30 +07:00
asep komarudin
97b67f59d8 update 2023-10-11 12:31:52 +07:00
asep komarudin
be42bd9c8f update 2023-10-10 07:22:24 +07:00
asep komarudin
ea8213115a update 2023-10-09 20:25:02 +07:00
asep komarudin
68d1c3637d update 2023-10-09 13:12:30 +07:00
asep komarudin
ccf17347cd update 2023-10-08 15:12:48 +07:00
asep komarudin
893cb9f880 update 2023-10-07 09:04:18 +07:00
asep komarudin
b0482285b1 update 2023-10-04 22:55:15 +07:00
asep komarudin
d5d8b0cb15 update 2023-10-03 07:44:38 +07:00
asep komarudin
369ded0f47 update 2023-10-02 20:20:35 +07:00
asep komarudin
30e639eee3 update 2023-10-02 16:23:40 +07:00
asep komarudin
607827147d update 2023-10-01 09:22:01 +07:00
asep komarudin
869d48754d update 2023-09-30 19:24:54 +07:00
asep komarudin
63900d6269 update 2023-09-29 09:20:50 +07:00
asep komarudin
2810c6faf1 update 2023-09-28 08:58:52 +07:00
asep komarudin
af5d7b77f9 update 2023-09-27 12:12:53 +07:00
asep komarudin
777e7a4f61 update 2023-09-10 13:47:30 +07:00
asep komarudin
1ed5ce2f15 update 2023-09-10 13:47:14 +07:00
asep komarudin
ad30c3421b update icon style 2023-09-09 14:12:11 +07:00
asep komarudin
976845601b update 2023-09-08 19:47:20 +07:00
asep komarudin
09a1733514 update 2023-09-06 13:56:44 +07:00
asep komarudin
084e121fc9 update 2023-09-05 18:09:31 +07:00
asep komarudin
2ba6e3c093 update 2023-09-05 10:40:24 +07:00
asep komarudin
488d78fe94 update 2023-09-04 15:18:56 +07:00
asep komarudin
d6c489f9dc update 2023-09-04 13:37:31 +07:00
asep komarudin
53057daa9f update 2023-09-03 16:16:05 +07:00
asep komarudin
a4d312b21f update 2023-09-03 06:17:37 +07:00
asep komarudin
f94dd731b2 update 2023-09-02 17:27:36 +07:00
asep komarudin
3f34dbefad update 2023-09-02 17:23:26 +07:00
asep komarudin
5480b225b9 update 2023-08-31 06:17:04 +07:00
asep komarudin
5b6e07c701 update 2023-08-30 19:48:05 +07:00
asep komarudin
197b76d49c update 2023-08-29 06:27:00 +07:00
asep komarudin
7eabe928cf update 2023-08-22 23:09:25 +07:00
asep komarudin
7829214173 update 2023-08-21 20:21:14 +07:00
asep komarudin
27be6c0856 update 2023-08-20 07:32:01 +07:00
asep komarudin
4031c51e79 update 2023-08-09 20:14:30 +07:00
asep komarudin
0355d5dc2a update 2023-08-06 13:03:29 +07:00
asep komarudin
1e92404fc3 update 2023-07-29 07:33:03 +07:00
asep komarudin
dc099dd487 update 2023-07-25 19:02:57 +07:00
asep komarudin
82a8f667ee update 2023-07-23 16:48:09 +07:00
asep komarudin
e8f07b60f8 update 2023-07-18 00:24:09 +07:00
asep komarudin
c11e4d324d update 2023-07-14 06:45:00 +07:00
asep komarudin
873ef653a5 update 2023-07-12 14:01:58 +07:00
asep komarudin
2ea6c1a3b6 update 2023-07-11 07:42:53 +07:00
asep komarudin
8d608118ed update 2023-07-10 19:18:35 +07:00
asep komarudin
30c9980822 update 2023-07-07 07:26:54 +07:00
asep komarudin
565f9d7d1b update 2023-07-05 16:33:07 +07:00
asep komarudin
4fc32fec0e update 2023-07-04 13:20:54 +07:00
asep komarudin
373b6942b0 update 2023-07-01 07:31:54 +07:00
asep komarudin
10a865bb77 update 2023-06-29 06:05:51 +07:00
asep komarudin
8576ec1637 update 2023-06-25 06:10:18 +07:00
asep komarudin
faeeb3cbe5 update 2023-06-24 10:08:21 +07:00
asep komarudin
08d8b4ac22 update 2023-06-23 12:56:18 +07:00
asep komarudin
054b4cd4a6 update 2023-06-23 10:52:21 +07:00
asep komarudin
5addd87e7a update 2023-06-22 13:51:39 +07:00
asep komarudin
f36ee6fbb2 update 2023-06-22 10:51:23 +07:00
asep komarudin
852d571c1c update 2023-06-20 16:18:10 +07:00
asep komarudin
e9180451c5 update 2023-06-19 07:31:59 +07:00
asep komarudin
f7e06f925b update 2023-06-18 19:41:11 +07:00
asep komarudin
f9ed77e425 update 2023-06-15 07:25:49 +07:00
asep komarudin
4898634bfc update 2023-06-15 06:45:56 +07:00
asep komarudin
dc7632e506 update 2023-06-13 22:14:20 +07:00
asep komarudin
fd1857c54b update 2023-06-12 07:53:03 +07:00
asep komarudin
75ef49b016 update 2023-06-12 07:11:47 +07:00
asep komarudin
831f50d124 update 2023-06-02 21:13:12 +07:00
asep komarudin
4cc977cc63 update 2023-05-31 16:12:45 +07:00
asep komarudin
1703963f73 update 2023-05-30 17:17:24 +07:00
asep komarudin
4998c3e381 update 2023-05-28 14:10:54 +07:00
asep komarudin
56503b0062 update 2023-05-28 14:04:01 +07:00
asep komarudin
59fd54c637 update 2023-05-28 05:25:04 +07:00
asep komarudin
9a35fbb26c update 2023-05-27 08:47:46 +07:00
asep komarudin
6d9218fab4 update 2023-05-25 08:14:51 +07:00
asep komarudin
2d85fc1f2f update 2023-05-23 16:23:18 +07:00
asep komarudin
7b0a471edb update 2023-05-23 05:40:39 +07:00
asep komarudin
f796399c6f update 2023-05-21 21:39:48 +07:00
asep komarudin
d6140416c5 update 2023-05-19 06:49:39 +07:00
asep komarudin
3adf5d6503 update 2023-05-17 08:14:52 +07:00
asep komarudin
943e6d7eb3 update 2023-05-16 18:56:04 +07:00
asep komarudin
4a2bd577be update 2023-05-13 17:56:23 +07:00
asep komarudin
dffc962e84 update 2023-05-12 21:33:23 +07:00
asep komarudin
c29640d3e7 update 2023-05-10 22:06:51 +07:00
asep komarudin
e1e1734899 update 2023-05-07 20:58:44 +07:00
asep komarudin
56ed455486 update 2023-05-07 06:32:06 +07:00
asep komarudin
416eb6a55f update 2023-05-05 21:09:06 +07:00
asep komarudin
599c544575 update 2023-05-02 06:34:41 +07:00
asep komarudin
0e112b925a update 2023-05-01 11:27:31 +07:00
asep komarudin
25be7f108f update 2023-04-30 18:58:58 +07:00
asep komarudin
833202622c update 2023-04-29 18:33:15 +07:00
asep komarudin
1a02e60635 update 2023-04-29 07:58:13 +07:00
asep komarudin
ace4975f97 update 2023-04-28 10:34:26 +07:00
asep komarudin
ee77da1b04 update 2023-04-27 17:03:07 +07:00
asep komarudin
9163713770 update 2023-04-26 08:37:22 +07:00
asep komarudin
31193eb55a update 2023-04-25 16:46:53 +07:00
asep komarudin
e95f743eb8 update 2023-04-25 06:39:03 +07:00
asep komarudin
4a0934efc0 update 2023-04-24 12:18:02 +07:00
asep komarudin
f0323c7917 update 2023-04-24 06:41:47 +07:00
asep komarudin
3bc1dfb417 update 2023-04-23 19:55:46 +07:00
asep komarudin
daac7869d0 update 2023-04-23 13:14:49 +07:00
asep komarudin
019f0d74fd update 2023-04-23 08:08:22 +07:00
asep komarudin
f53da6ae00 update 2023-04-23 06:42:55 +07:00
asep komarudin
c8f420d169 update 2023-04-22 17:34:23 +07:00
asep komarudin
77d6e5e961 update 2023-04-22 16:29:44 +07:00
asep komarudin
21c3a8778f update 2023-04-22 16:08:45 +07:00
asep komarudin
907a0705cc update 2023-04-21 22:52:02 +07:00
asep komarudin
677d9a2ff9 update 2023-04-21 05:37:15 +07:00
asep komarudin
9f8eeec635 update 2023-04-20 19:02:14 +07:00
asep komarudin
a041931db1 update 2023-04-20 17:54:15 +07:00
asep komarudin
9c1ec4572f update 2023-04-20 13:04:13 +07:00
asep komarudin
ae253cacd8 update 2023-04-20 12:48:05 +07:00
asep komarudin
eab7a5d83a update 2023-04-19 19:05:33 +07:00
asep komarudin
f855f16dcb update 2023-04-19 08:02:22 +07:00
asep komarudin
8b80ed5daf update 2023-04-19 04:33:59 +07:00
asep komarudin
f154378759 update 2023-04-18 22:14:49 +07:00
asep komarudin
6d764798e2 update 2023-04-18 13:25:30 +07:00
asep komarudin
8455341a88 update 2023-04-18 12:34:23 +07:00
asep komarudin
a386adf4ad update default status icon 2023-04-18 09:15:14 +07:00
asep komarudin
bd67de604c optimize load config 2023-04-18 08:13:36 +07:00
asep komarudin
e1690ba634 update 2023-04-18 05:08:04 +07:00
asep komarudin
793c08910a update 2023-04-17 20:18:26 +07:00
asep komarudin
51f620cadd update 2023-04-17 20:15:20 +07:00
asep komarudin
f170d99a8c update 2023-04-17 18:18:15 +07:00
asep komarudin
e15ff21d0c update 2023-04-17 17:59:57 +07:00
asep komarudin
36485199cf update 2023-04-17 17:38:46 +07:00
asep komarudin
a93d2e08bf update config 2023-04-17 13:48:54 +07:00
asep komarudin
8d037f7050 update 2023-04-16 22:10:01 +07:00
Asep Komarudin
fe0df6fa63
Update README.md 2023-04-16 12:27:57 +07:00
asep komarudin
6792b0a048 update 2023-04-16 12:19:02 +07:00
pojok code
85ab2457b1 update support nvim v0.9 2023-04-16 12:16:58 +07:00
pojok code
da4e2f4467 update config bufferline support nvim 0.9 2023-04-16 12:06:05 +07:00
asep komarudin
3d9a94ffec update 2023-04-16 08:44:09 +07:00
asep komarudin
bd29c43941 update 2023-04-16 05:02:14 +07:00
asep komarudin
7a5ff82eeb update 2023-04-15 17:12:44 +07:00
asep komarudin
753cb001c2 update 2023-04-13 19:18:19 +07:00
asep komarudin
db0df80c63 update 2023-04-12 08:02:48 +07:00
asep komarudin
7c0a0a888b update mason dap config 2023-04-10 18:49:06 +07:00
asep komarudin
3a69b6cee1 update 2023-04-09 14:35:15 +07:00
asep komarudin
8505c1e9e5 update 2023-04-09 11:16:56 +07:00
asep komarudin
928e944fe0 update config mason null-ls 2023-04-09 09:15:20 +07:00
asep komarudin
8b301ea877 update 2023-04-08 15:03:17 +07:00
asep komarudin
ae21b1a4b1 update 2023-04-08 08:24:50 +07:00
asep komarudin
7e37748213 update 2023-04-08 08:13:59 +07:00
asep komarudin
e2cb15ce90 update 2023-04-08 08:08:16 +07:00
asep komarudin
a59c9be887 update 2023-04-08 07:47:05 +07:00
asep komarudin
f6e67844b5 update 2023-04-07 19:19:02 +07:00
asep komarudin
33237c167e update 2023-04-07 09:36:47 +07:00
asep komarudin
d7d3a38936 update 2023-04-06 20:11:18 +07:00
asep komarudin
69fa259238 update 2023-04-05 12:06:27 +07:00
asep komarudin
baa45b52be update 2023-04-03 16:40:58 +07:00
asep komarudin
4e0481320c update 2023-04-01 14:23:51 +07:00
asep komarudin
316ca50cb2 update 2023-04-01 07:02:21 +07:00
asep komarudin
674ed307bb update 2023-03-30 17:59:02 +07:00
asep komarudin
58f7071abd update 2023-03-30 07:54:20 +07:00
asep komarudin
53617389af update 2023-03-29 08:38:03 +07:00
asep komarudin
6b28d09b36 update 2023-03-27 20:20:29 +07:00
asep komarudin
c8a616334d update 2023-03-27 16:01:51 +07:00
asep komarudin
b52eb68577 update 2023-03-26 16:05:44 +07:00
asep komarudin
58b4a1bbc1 update 2023-03-26 12:17:39 +07:00
asep komarudin
c4ccb1cb16 update 2023-03-26 12:16:52 +07:00
asep komarudin
6cb1dacc17 update 2023-03-25 07:59:28 +07:00
asep komarudin
0de8c12c0d update 2023-03-24 07:33:26 +07:00
asep komarudin
9caaca2da4 update config 2023-03-23 16:20:51 +07:00
asep komarudin
c606829825 disable hilight 2023-03-22 23:08:30 +07:00
asep komarudin
092678bfa1 fix nvim tree icon color dracula theme 2023-03-22 22:58:52 +07:00
asep komarudin
6358c318ab update 2023-03-22 20:17:21 +07:00
asep komarudin
d4f87cccd5 update 2023-03-20 22:42:31 +07:00
asep komarudin
3fa685681d update 2023-03-19 11:29:43 +07:00
asep komarudin
aef665fa55 update 2023-03-18 08:30:58 +07:00
asep komarudin
95f2e7653a update 2023-03-17 07:22:25 +07:00
asep komarudin
35f8874104 update error lens 2023-03-16 17:56:13 +07:00
asep komarudin
2325a91e12 update 2023-03-16 06:50:25 +07:00
asep komarudin
edf66f683e update 2023-03-15 07:03:21 +07:00
asep komarudin
ff21170b2a update plugins 2023-03-14 18:25:13 +07:00
asep komarudin
e595ecf187 update plugins 2023-03-14 11:57:59 +07:00
asep komarudin
650a4061f0 support config neovide 2023-03-14 11:30:04 +07:00
asep komarudin
38c26055b2 update config support neovide 2023-03-14 09:02:28 +07:00
asep komarudin
fdeda33019 update 2023-03-14 08:48:42 +07:00
asep komarudin
68087b6dc3 fix bug tab 2023-03-13 22:55:09 +07:00
asep komarudin
39c6fb682a update 2023-03-13 17:04:19 +07:00
asep komarudin
d9d2af05a3 update 2023-03-12 16:28:26 +07:00
asep komarudin
f8d0cf2da0 update performance startup 2023-03-12 15:35:27 +07:00
asep komarudin
c57685dfac fix bug null-ls source 2023-03-11 09:32:27 +07:00
asep komarudin
168685bcfb update 2023-03-11 06:59:34 +07:00
asep komarudin
d79cd5d6e5 Merge branch 'main' of https://github.com/pojokcodeid/nvim-lazy 2023-03-11 06:58:21 +07:00
asep komarudin
79e5695d20 update 2023-03-11 06:57:52 +07:00
Asep Komarudin
84244bd975
update 2023-03-08 22:26:30 +07:00
asep komarudin
a745438e75 tune startup time 2023-03-08 13:52:16 +07:00
asep komarudin
b7de30e431 update event 2023-03-08 06:41:08 +07:00
asep komarudin
f60855a938 lsp ghost text optional config 2023-03-08 06:31:31 +07:00
asep komarudin
9faad80261 add lsp optional plugins and add config virtual text 2023-03-07 19:50:32 +07:00
asep komarudin
7433474605 rename dashboard to header 2023-03-06 19:36:07 +07:00
asep komarudin
ad59d61555 update 2023-03-06 19:23:29 +07:00
asep komarudin
8b6a40efe8 update debug ensure install 2023-03-06 14:23:32 +07:00
asep komarudin
a7bd97a3c7 add config ensure installed 2023-03-06 14:11:29 +07:00
asep komarudin
0b8d7cdf85 dashboard 2023-03-06 13:28:15 +07:00
asep komarudin
aa00ff9942 update default code runner 2023-03-06 13:27:50 +07:00
asep komarudin
a9e51972a9 update 2023-03-06 11:50:21 +07:00
asep komarudin
ee681ef572 update config auto install lspconfig 2023-03-06 09:18:34 +07:00
asep komarudin
68160a01be update 2023-03-06 07:13:57 +07:00
asep komarudin
a44ddd6365 fix code runner 2023-03-05 20:11:50 +07:00
asep komarudin
418a659142 fix lsp register ^& code runner config 2023-03-05 19:29:48 +07:00
asep komarudin
38d2c29a95 migrate config form function to global variable 2023-03-05 17:34:12 +07:00
asep komarudin
b6f0601d3d support config color scheme 2023-03-05 10:49:03 +07:00
asep komarudin
ee7e49f922 update config 2023-03-05 06:17:57 +07:00
asep komarudin
230b3f7fb0 update 2023-03-05 00:36:39 +07:00
asep komarudin
30ae653cda update 2023-03-05 00:32:18 +07:00
asep komarudin
09366bf881 update default color scheme 2023-03-04 19:42:21 +07:00
asep komarudin
6663c5eef1 update config colorscheme 2023-03-04 19:40:13 +07:00
asep komarudin
d68c8f582b update colorcheme config 2023-03-04 18:47:58 +07:00
asep komarudin
ad84490084 support config transparent bg 2023-03-04 18:36:14 +07:00
asep komarudin
82eb5956d3 support custom transparent background 2023-03-04 16:26:54 +07:00
asep komarudin
5d2a94b0db update transparent support sonokai 2023-03-04 15:33:41 +07:00
asep komarudin
a9d7cbc71f config spesific language 2023-03-04 14:34:28 +07:00
asep komarudin
39a2d3d8b8 update 2023-03-04 14:03:09 +07:00
asep komarudin
751268cb45 support custom lualine style 2023-03-04 14:00:51 +07:00
asep komarudin
1bb9a4cfa2 new config trasnparent mode 2023-03-04 12:30:04 +07:00
asep komarudin
1a7a0a9ba0 fitur baru config color scheme 2023-03-04 11:53:44 +07:00
asep komarudin
06995762e0 fitur baru custom lualine style 2023-03-04 09:44:58 +07:00
asep komarudin
1c107be959 update 2023-03-04 06:50:52 +07:00
asep komarudin
4bf554b022 update config 2023-03-03 21:44:37 +07:00
asep komarudin
06f0332a8f new feature custom lsp progress 2023-03-03 19:15:17 +07:00
asep komarudin
7f02b38730 update 2023-03-03 17:38:43 +07:00
asep komarudin
66d35baa96 update 2023-03-03 13:21:06 +07:00
asep komarudin
8c55f6b749 update cmd line 2023-03-03 07:09:50 +07:00
asep komarudin
67a507d530 fix error close nvim-tree last buffer 2023-03-03 06:29:47 +07:00
asep komarudin
d20cfcdbfc update 2023-03-02 22:22:52 +07:00
asep komarudin
53dc56c690 update 2023-03-02 14:49:52 +07:00
asep komarudin
10644287aa update 2023-03-02 11:24:19 +07:00
asep komarudin
0c12f6e382 fix null-ls format onsave 2023-03-01 22:16:37 +07:00
asep komarudin
3a8ccb5ffb update config custom snippets 2023-03-01 17:14:03 +07:00
asep komarudin
874cacf692 update 2023-02-28 06:18:04 +07:00
asep komarudin
7f00e3a186 update 2023-02-27 21:25:47 +07:00
asep komarudin
5e561217e3 update 2023-02-27 16:34:36 +07:00
asep komarudin
028e3d9895 update nvim-tree config 2023-02-27 14:52:49 +07:00
asep komarudin
5a53ad9060 update config webdevicon 2023-02-27 08:18:09 +07:00
asep komarudin
6b36e17401 update 2023-02-26 20:04:21 +07:00
Asep Komarudin
da35ec684a
Update README.md 2023-02-26 20:02:14 +07:00
Asep Komarudin
90601bb034
Update README.md 2023-02-26 20:00:56 +07:00
Asep Komarudin
ee9592fec7
Update README.md 2023-02-26 19:55:33 +07:00
asep komarudin
dd2647f88d update 2023-02-26 16:59:01 +07:00
asep komarudin
5d26ef6578 update 2023-02-26 15:48:39 +07:00
asep komarudin
2878db2215 update 2023-02-26 10:44:03 +07:00
asep komarudin
8598d0c94c update 2023-02-26 09:40:35 +07:00
asep komarudin
0df0f75edb update dapui config 2023-02-26 09:36:08 +07:00
asep komarudin
ba79f479ef update 2023-02-26 06:42:57 +07:00
asep komarudin
da02b7279c update 2023-02-25 17:44:22 +07:00
asep komarudin
cecc613d56 update sidebar neotree 2023-02-25 14:17:52 +07:00
asep komarudin
1237f8714d update 2023-02-25 11:50:58 +07:00
asep komarudin
3660e707ab update run gradle 2023-02-25 09:45:35 +07:00
asep komarudin
1ebe332c0b update 2023-02-25 09:08:10 +07:00
asep komarudin
b054c3c93a update 2023-02-25 00:17:26 +07:00
asep komarudin
7ec02abae7 update 2023-02-24 23:09:05 +07:00
asep komarudin
f88e445f01 update 2023-02-24 22:43:48 +07:00
asep komarudin
2a752e0e93 update 2023-02-24 08:18:49 +07:00
asep komarudin
d4195e8070 update 2023-02-24 07:59:24 +07:00
asep komarudin
835bb6404f update 2023-02-24 07:56:02 +07:00
asep komarudin
8257ffb90d update 2023-02-24 07:50:00 +07:00
asep komarudin
5088e0d208 update 2023-02-23 18:32:15 +07:00
asep komarudin
9cee99bf14 update 2023-02-23 17:14:12 +07:00
asep komarudin
8f8665c05f update 2023-02-23 13:52:32 +07:00
asep komarudin
4e4b8e39a5 update 2023-02-23 07:46:52 +07:00
asep komarudin
cc12787108 update 2023-02-23 06:15:39 +07:00
Asep Komarudin
9308b4f6bc
Update README.md 2023-02-22 23:24:28 +07:00
asep komarudin
81cb2803f5 update 2023-02-22 19:21:24 +07:00
asep komarudin
b61f3f851c update custom snippets 2023-02-22 17:33:25 +07:00
asep komarudin
6b576884e1 update 2023-02-22 16:23:11 +07:00
asep komarudin
1aadb50cf4 update 2023-02-22 16:20:12 +07:00
asep komarudin
65061f330d update 2023-02-22 15:32:33 +07:00
asep komarudin
91528528ef update 2023-02-22 15:30:58 +07:00
asep komarudin
2d038fb40a update 2023-02-22 15:12:01 +07:00
asep komarudin
a0bf1dbbd0 update 2023-02-22 15:03:37 +07:00
asep komarudin
8885a50153 update 2023-02-22 15:02:32 +07:00
asep komarudin
6dd256ea40 update 2023-02-22 14:46:24 +07:00
asep komarudin
11c4bd161a update 2023-02-22 14:19:51 +07:00
asep komarudin
4fe0a24dda update 2023-02-22 14:10:25 +07:00
asep komarudin
02d99bc599 update 2023-02-22 14:09:10 +07:00
asep komarudin
530e302fa6 update 2023-02-22 14:04:41 +07:00
asep komarudin
c1a7ef56d8 update 2023-02-22 14:03:54 +07:00
asep komarudin
dbef02b166 update 2023-02-22 14:02:40 +07:00
asep komarudin
a964a76b8a update wichkey 2023-02-22 13:52:51 +07:00
asep komarudin
7bca70bee7 support wichkey custom 2023-02-22 10:52:37 +07:00
asep komarudin
14d70c6a17 update 2023-02-22 08:02:26 +07:00
asep komarudin
b65e102d0e update 2023-02-22 08:00:57 +07:00
asep komarudin
3c846213a9 update 2023-02-22 07:58:25 +07:00
asep komarudin
0253d9a44f update 2023-02-22 07:55:38 +07:00
asep komarudin
69d8a52889 update 2023-02-22 07:52:59 +07:00
asep komarudin
92f288bddf update 2023-02-22 07:48:02 +07:00
asep komarudin
25b04f10d1 update 2023-02-22 07:41:41 +07:00
asep komarudin
645bb933f3 update 2023-02-22 07:39:05 +07:00
asep komarudin
bc0ed2a83b update 2023-02-22 07:36:33 +07:00
asep komarudin
e2ce8b2cc6 update config mason dap 2023-02-22 07:31:52 +07:00
asep komarudin
186fa6b879 update 2023-02-22 07:18:40 +07:00
asep komarudin
273dd3d033 update 2023-02-22 07:17:12 +07:00
asep komarudin
17620777c7 update 2023-02-22 07:14:55 +07:00
asep komarudin
705155219e update 2023-02-22 06:31:10 +07:00
asep komarudin
c05213b542 update 2023-02-22 06:30:19 +07:00
asep komarudin
54064cff4e update 2023-02-22 06:25:46 +07:00
asep komarudin
2bad660b01 update 2023-02-22 06:24:56 +07:00
asep komarudin
e14e31d5ce update 2023-02-22 06:23:34 +07:00
asep komarudin
a01af75161 update 2023-02-22 06:11:13 +07:00
asep komarudin
665c8c9b16 update 2023-02-22 06:07:50 +07:00
asep komarudin
fbc6415ec1 update 2023-02-22 05:51:52 +07:00
asep komarudin
b30b22af21 update 2023-02-21 20:20:46 +07:00
asep komarudin
e7f5d05ded update 2023-02-21 19:24:46 +07:00
asep komarudin
70f3e07aea update 2023-02-21 19:21:38 +07:00
asep komarudin
b08b2332ac update 2023-02-21 19:18:27 +07:00
Asep Komarudin
8a8ced1d9d
Update README.md 2023-02-21 19:15:33 +07:00
asep komarudin
63269c9e12 update 2023-02-21 18:19:24 +07:00
asep komarudin
3a4d230067 update 2023-02-21 13:33:13 +07:00
asep komarudin
4cb89a4e36 update 2023-02-21 12:14:05 +07:00
asep komarudin
afa86f9325 update 2023-02-21 09:02:57 +07:00
asep komarudin
96176b0cfe update config options 2023-02-21 08:50:04 +07:00
asep komarudin
b9e08f9252 update 2023-02-21 07:32:15 +07:00
asep komarudin
180b965311 update 2023-02-20 23:45:35 +07:00
asep komarudin
35e077f1c4 update 2023-02-20 23:04:23 +07:00
asep komarudin
bd3d45aad5 update 2023-02-20 22:53:49 +07:00
asep komarudin
9a27adbbcb update 2023-02-20 22:36:43 +07:00
asep komarudin
87fa670e51 update 2023-02-20 22:22:41 +07:00
asep komarudin
16fa7e14ae update 2023-02-20 18:05:29 +07:00
asep komarudin
75040cc400 update 2023-02-20 18:02:32 +07:00
asep komarudin
020686b302 update 2023-02-20 18:00:56 +07:00
asep komarudin
0f10e9cd6b update 2023-02-20 17:54:29 +07:00
asep komarudin
42c256cb5c update language 2023-02-20 17:53:37 +07:00
asep komarudin
3df0fa1f13 update 2023-02-20 17:29:35 +07:00
asep komarudin
14f0c3a3cb update manual 2023-02-20 17:26:39 +07:00
Asep Komarudin
dede3f8e8d
Update README.md 2023-02-20 16:46:33 +07:00
asep komarudin
6ab25a21fd update 2023-02-20 16:27:53 +07:00
asep komarudin
01defa0547 update 2023-02-20 10:30:57 +07:00
428 changed files with 10342 additions and 88579 deletions

1
.gitignore vendored
View file

@ -0,0 +1 @@
db_ui

6
.stylua.toml Normal file
View file

@ -0,0 +1,6 @@
column_width = 120
line_endings = "Unix"
indent_type = "Spaces"
indent_width = 2
quote_style = "AutoPreferDouble"
# no_call_parentheses = true

385
README.md
View file

@ -1,187 +1,268 @@
# nvim-lazy
<div align="center">
# Nvim-Lazy
![Neovim](https://img.shields.io/badge/NeoVim-%2358A143.svg?&style=for-the-badge&logo=neovim&logoColor=white)
![Lua](https://img.shields.io/badge/lua-%233C2D72.svg?style=for-the-badge&logo=lua&logoColor=white)
<p align="center">
<a href="https://github.com/pojokcodeid/nvim-lazy/pulse">
<img src="https://img.shields.io/github/last-commit/pojokcodeid/nvim-lazy?style=for-the-badge&logo=github&color=8dc4e4&logoColor=D9E0EE&labelColor=302D41"/>
</a>
<a href="https://github.com/pojokcodeid/nvim-lazy/latest">
<img src="https://img.shields.io/github/v/release/pojokcodeid/nvim-lazy?style=for-the-badge&logo=gitbook&color=9bd5ca&logoColor=D9E0EE&labelColor=302D41"/>
</a>
<a href="https://github.com/pojokcodeid/nvim-lazy/stargazers">
<img src="https://img.shields.io/github/stars/pojokcodeid/nvim-lazy?style=for-the-badge&logo=apachespark&color=eed50f&logoColor=D9E0EE&labelColor=302D41"/>
</a>
<a href="https://github.com/pojokcodeid/nvim-lazy/blob/main/LICENSE"><img src="https://img.shields.io/github/license/pojokcodeid/nvim-lazy?color=%2362afef&style=for-the-badge"></a>
<a href="https://github.com/pojokcodeid/nvim-lazy/issues">
<img
alt="Issues"
src="https://img.shields.io/github/issues-raw/pojokcodeid/nvim-lazy?colorA=364A4f&colorB=F5A97F&logo=github&logoColor=D9E0EE&style=for-the-badge">
</a>
</a>
<a href="https://github.com/pojokcodeid/nvim-lazy">
<img alt="Repo Size" src="https://img.shields.io/github/repo-size/pojokcodeid/nvim-lazy?color=%24DDB6F2&label=SIZE&logo=codesandbox&style=for-the-badge&logoColor=D9E0EE&labelColor=302D41" />
</a>
<a href="https://twitter.com/intent/follow?screen_name=pojokcodeid_">
<img alt="follow on Twitter" src="https://img.shields.io/twitter/follow/pojokcodeid_?style=for-the-badge&logo=twitter&color=9aadf3&logoColor=D9E0EE&labelColor=302D41" />
</a>
</p>
</div>
## HOME
![home!](img/home.png)
## Transparant
![home!](img/transparant.png)
## Demo
![demo!](img/demo.gif)
## Treesitter dan LSP
![demo!](img/ts_lsp.gif)
## Plugins Manager
![PlugManaget!](img/plugins_manager.png)
## PHP
## Javascript Project
![LARAVEL!](img/laravel.jpeg)
![PlugManaget!](img/node.png)
## JAVA
<!-- ## Layout -->
![JAVA!](img/Spring_boot_code.jpeg)
<!-- ![PlugManaget!](img/coding.png) -->
# Panduan Install Dan Konfigurasi NeoVim
# NeoVim Install & Configuration Guide
## Kebutuhan Dasar
## Visit <a href="https://github.com/pojokcodeid/nvim-lazy/wiki/">Wiki</a>
1. Install Neovim 8.0+ https://github.com/neovim/neovim/releases/tag/v0.8.2
2. C++ (windows) Compiler https://www.msys2.org/
3. GIT https://git-scm.com/download/win
4. NodeJs https://nodejs.org/en/
5. Ripgrep https://github.com/BurntSushi/ripgrep
6. Lazygit https://github.com/jesseduffield/lazygit
7. Nerd Font https://github.com/ryanoasis/nerd-fonts
8. Windows Terminal (Windows) https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701?hl=en-id&gl=id
9. Powershell (windows) https://apps.microsoft.com/store/detail/powershell/9MZ1SNWT0N5D?hl=en-id&gl=id
## Basic Requirement
## Panduan Windows
2. Install Neovim 0.95+ https://github.com/neovim/neovim/releases/tag/stable
1. C++ https://www.msys2.org/
1. GIT https://git-scm.com/download/win
1. NodeJs https://nodejs.org/en/
1. Ripgrep https://github.com/BurntSushi/ripgrep
1. Lazygit https://github.com/jesseduffield/lazygit
1. Nerd Font https://www.nerdfonts.com/ or https://github.com/ryanoasis/nerd-fonts
1. Windows Terminal (Windows) https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701?hl=en-id&gl=id
1. Powershell (windows) https://apps.microsoft.com/store/detail/powershell/9MZ1SNWT0N5D?hl=en-id&gl=id
- Pastikan sudah menginstall kebutuhan dasar diatas
- Jalankan Script Dibawah pada Powershell
# Windows
```
git clone https://github.com/pojokcodeid/nvim-lazy-basic.git "$env:LOCALAPPDATA\nvim"
git clone https://github.com/pojokcodeid/neovim-starter.git "$env:LOCALAPPDATA\nvim"
nvim
```
## Panduan Linux (Debian Based)
1. Pastikan Acess Administrator
```
visudo
[nama user] ALL=(ALL:ALL) ALL
[nama user] ALL=(ALL) NOPASSWD:ALL
```
2. Install Neovim
# Linux
```bash
sudo apt-get install wget
mkdir download
cd download
wget https://github.com/neovim/neovim/releases/download/v0.8.1/nvim-linux64.deb
sudo apt-get install ./nvim-linux64.deb
nvim --version
git clone https://github.com/pojokcodeid/neovim-starter.git ~/.config/nvim
```
3. Check G++
# Uninstall
```bash
g++ --version
# Linux / MacOS (unix)
rm -rf ~/.config/nvim
rm -rf ~/.local/state/nvim
rm -rf ~/.local/share/nvim
# Flatpak (linux)
rm -rf ~/.var/app/io.neovim.nvim/config/nvim
rm -rf ~/.var/app/io.neovim.nvim/data/nvim
rm -rf ~/.var/app/io.neovim.nvim/.local/state/nvim
# Windows CMD
rd -r ~\AppData\Local\nvim
rd -r ~\AppData\Local\nvim-data
# Windows PowerShell
rm -Force ~\AppData\Local\nvim
rm -Force ~\AppData\Local\nvim-data
```
4. Install NodeJS
# Shortcut Most-Used
```bash
sudo apt-get install curl
sudo apt install build-essential libssl-dev
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
source ~/.bashrc
nvm install 18.13.0
node --version
npm --version
```
<table>
<tr>
<td>:q or :quit</td>
<td>exit the form</td>
</tr>
<tr>
<td>:w or :write</td>
<td>write the typing result into a file (save)</td>
</tr>
<tr>
<td>:wq</td>
<td>save and exit</td>
</tr>
<tr>
<td>:q!</td>
<td>Exit and do not save</td>
</tr>
<tr>
<td>escape</td>
<td>normal mode</td>
</tr>
<tr>
<td>i</td>
<td>insert mode</td>
</tr>
<tr>
<td>v</td>
<td>visual mode, must be in normal mode first</td>
</tr>
<tr>
<td>h</td>
<td>left</td>
</tr>
<tr>
<td>j</td>
<td>down</td>
</tr>
<tr>
<td>k</td>
<td>up</td>
</tr>
<tr>
<td>l</td>
<td>right</td>
</tr>
<tr>
<td>:ter</td>
<td>open the terminal</td>
</tr>
<tr>
<td>0 or home</td>
<td>move the cursor to the beginning of the line</td>
</tr>
<tr>
<td>$ or end</td>
<td>move the cursor to the end of the line</td>
</tr>
<tr>
<td>gg</td>
<td>move the cursor to the top</td>
</tr>
<tr>
<td>G</td>
<td>move the cursor to the end of the page</td>
</tr>
<tr>
<td>w</td>
<td>move the cursor to the next word with out spaces</td>
</tr>
<tr>
<td>3w</td>
<td>move the cursor to the next 3 words</td>
</tr>
<tr>
<td>b</td>
<td>move the cursor to the previous word</td>
</tr>
<tr>
<td>3b</td>
<td>move the cursor to the previous 3 words</td>
</tr>
<tr>
<td>(</td>
<td>move the cursor to the previous paragraph</td>
</tr>
<tr>
<td>)</td>
<td>move the cursor to the next paragraph</td>
</tr>
<tr>
<td>dd</td>
<td>delete text 1 line</td>
</tr>
<tr>
<td>d$</td>
<td>delete words until the end of the line from the cursor position</td>
</tr>
<tr>
<td>d0</td>
<td>
delete words until the beginning of the line from the cursor position
</td>
</tr>
<tr>
<td>U</td>
<td>to undo</td>
</tr>
<tr>
<td>CTRL + r</td>
<td>Rendo</td>
</tr>
<tr>
<td>Yp</td>
<td>duplicate line code</td>
</tr>
<tr>
<td>yyp</td>
<td>same duplicate line code</td>
</tr>
<tr>
<td>:m+1</td>
<td>move 1 line down</td>
</tr>
<tr>
<td>:m-1</td>
<td>move 1 line up</td>
</tr>
<tr>
<td>d</td>
<td>delete code that is selected with view mode</td>
</tr>
<tr>
<td>:e newfolder/newfile.ext</td>
<td>create a new file in a new folder</td>
</tr>
<tr>
<td>:f newfolder/newfile.ext</td>
<td>to copy the file from the open file</td>
</tr>
<tr>
<td>bdw</td>
<td>delete 1 word</td>
</tr>
<tr>
<td>dw</td>
<td>delete to the right in 1 word at the cursor position</td>
</tr>
</table>
5. Install unzip, ripgrep
```bash
sudo apt-get install unzip
sudo apt-get install ripgrep
```
6. Install lazygit
```bash
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v*([^"]+)".*/\1/')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
sudo tar xf lazygit.tar.gz -C /usr/local/bin lazygit
lazygit --version
```
7. Install Git
```bash
sudo apt-get install git
git --version
```
8. Clone Config
```bash
git clone https://github.com/pojokcodeid/nvim-lazy-basic.git ~/.config/nvim
```
## Setting LSP dan Treesitter
### Config LSP - Cari file nvim/lua/user/lsp/mason.lua
- Jalankan dengan commond mode
```
:MasonInstall html-lsp css-lsp typescript-language-server
```
- Rujukan Lnguage Support <br>
https://github.com/williamboman/mason.nvim/blob/main/PACKAGES.md
### Comfig Treesitter Cari file nvim/lua/user/treesitter.lua
- Jalankan Code Berikut pada command
```lua
:TSInstall html css javascript ..... dst
```
- Rujukan Language Support <br>
https://github.com/nvim-treesitter/nvim-treesitter#supported-languages
## Ubah Dashboard
### Cari File nvim/lua/custom/dashboard_example.lua , ubah nama file menjadi dashboard.lua
- Edit Bagian ini
```lua
M.dashboard = {
[[ __ ]],
[[ ___ ___ ___ __ __ /\_\ ___ ___ ]],
[[ / _ `\ / __`\ / __`\/\ \/\ \\/\ \ / __` __`\ ]],
[[/\ \/\ \/\ __//\ \_\ \ \ \_/ |\ \ \/\ \/\ \/\ \ ]],
[[\ \_\ \_\ \____\ \____/\ \___/ \ \_\ \_\ \_\ \_\]],
[[ \/_/\/_/\/____/\/___/ \/__/ \/_/\/_/\/_/\/_/]],
}
```
- Link Generate Dasboard
https://patorjk.com/software/taag/
## Seting Bahasa Pemprograman
- https://youtube.com/playlist?list=PLhzwHCJWMbnvhPy0wqZGVBRUEAgS93iuk
## List Plugins
- <a href="https://github.com/folke/lazy.nvim">Lazy </a>
- <a href="https://github.com/nvim-lua/plenary.nvim">Plenary </a>
- <a href="https://github.com/windwp/nvim-autopairs">Nvim-Autopairs </a>
- <a href="https://github.com/numToStr/Comment.nvim">Comment.nvim</a>
- <a href="https://github.com/JoosepAlviste/nvim-ts-context-commentstring">nvim-ts-context-commentstring</a>
- <a href="https://github.com/nvim-tree/nvim-web-devicons">nvim-web-devicons</a>
- <a href="https://github.com/nvim-tree/nvim-tree.lua">nvim-tree.lua</a>
- <a href="https://github.com/akinsho/bufferline.nvim">bufferline.nvim</a>
- <a href="https://github.com/moll/vim-bbye">vim-bbye</a>
- <a href="https://github.com/akinsho/toggleterm.nvim">toggleterm.nvim</a>
- <a href="https://github.com/lewis6991/impatient.nvim">impatient.nvim</a>
- <a href="https://github.com/lukas-reineke/indent-blankline.nvim">indent-blankline.nvim</a>
- <a href="https://github.com/goolord/alpha-nvim">alpha-nvim</a>
- <a href="https://github.com/folke/which-key.nvim">which-key.nvim</a>
- <a href="https://github.com/folke/tokyonight.nvim">tokyonight.nvim</a>
- <a href="https://github.com/hrsh7th/nvim-cmp">nvim-cmp</a>
- <a href="https://github.com/hrsh7th/cmp-buffer">cmp-buffer</a>
## key lazygit
<a href="https://github.com/jesseduffield/lazygit/blob/master/docs/keybindings/Keybindings_en.md?fbclid=IwAR3BogewbYeP0PbPY1pewCkq2c3PKua3eHi-00rHpdSdz9gSKrY71Pv10u4" target="_blank">Key Lazygit</a>
## Terima Kasih
## Thanks To
https://github.com/LunarVim/Neovim-from-scratch <br>
https://github.com/AstroNvim/AstroNvim

BIN
img/coding.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

BIN
img/demo.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Before After
Before After

BIN
img/node.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Before After
Before After

BIN
img/transparant.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,014 KiB

BIN
img/ts_lsp.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 MiB

View file

@ -1 +1,14 @@
require("core")
if vim.g.vscode then
-- config vscode
Map = vim.keymap.set
Cmd = vim.cmd
VSCodeNotify = vim.fn.VSCodeNotify
VSCodeCall = vim.fn.VSCodeCall
require("_vscode.functions")
require("_vscode.mappings")
else
-- config neovim
require("pcode.core")
end

View file

@ -1,58 +1,58 @@
{
"Comment.nvim": { "branch": "master", "commit": "d9cfae1059b62f7eacc09dba181efe4894e3b086" },
"LuaSnip": { "branch": "master", "commit": "500981ff6cefc7343e3959ef0f939bd0bfd49ba9" },
"alpha-nvim": { "branch": "main", "commit": "b3eef69e95674905bf26c7740dd4bbb09b355494" },
"bufdelete.nvim": { "branch": "master", "commit": "8933abc09df6c381d47dc271b1ee5d266541448e" },
"bufferline.nvim": { "branch": "main", "commit": "f4af7e5ad68fca928753f280515646803252611d" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-nvim-lsp": { "branch": "main", "commit": "0e6b2ed705ddcff9738ec4ea838141654f12eeef" },
"cmp-nvim-lua": { "branch": "main", "commit": "f3491638d123cfd2c8048aefaf66d246ff250ca6" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" },
"code_runner.nvim": { "branch": "main", "commit": "a010649236fe245eaab2641a13228cd601499715" },
"dressing.nvim": { "branch": "master", "commit": "db716a0f1279f79a886c0e0b6ab3c3d5ffdb42fe" },
"fidget.nvim": { "branch": "main", "commit": "688b4fec4517650e29c3e63cfbb6e498b3112ba1" },
"friendly-snippets": { "branch": "main", "commit": "6fa50a94ba5378bb73013a6e163376d8e69bd8a5" },
"gitsigns.nvim": { "branch": "main", "commit": "bb808fc7376ed7bac0fbe8f47b83d4bf01738167" },
"gruvbox-baby": { "branch": "main", "commit": "ea71b4225d0140103d99748ca4a33ecf22c03f62" },
"impatient.nvim": { "branch": "main", "commit": "969f2c5c90457612c09cf2a13fee1adaa986d350" },
"indent-blankline.nvim": { "branch": "master", "commit": "018bd04d80c9a73d399c1061fa0c3b14a7614399" },
"jaq-nvim": { "branch": "master", "commit": "236296aae555657487d1bb4d066cbde9d79d8cd4" },
"lazy.nvim": { "branch": "main", "commit": "f2cc9ef6acc7367c001b7507c82cab3ab7c29cae" },
"live-server": { "branch": "main", "commit": "ecd7c1418823b65dd2bca710587c80afe42c973e" },
"lualine.nvim": { "branch": "master", "commit": "e99d733e0213ceb8f548ae6551b04ae32e590c80" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "93e58e100f37ef4fb0f897deeed20599dae9d128" },
"mason-null-ls.nvim": { "branch": "main", "commit": "29ce60f9a16fef3de682a9365ef635f24ae92bf9" },
"mason.nvim": { "branch": "main", "commit": "718966fd3204bd1e4aa5af0a032ce1e916295ecd" },
"mini.indentscope": { "branch": "main", "commit": "d3e907b13298b0fc60db289fb804be7e9c561922" },
"neoscroll.nvim": { "branch": "master", "commit": "d7601c26c8a183fa8994ed339e70c2d841253e93" },
"null-ls.nvim": { "branch": "main", "commit": "a82aa08c0063843926947f3688b0e61fd71db680" },
"nvim-autopairs": { "branch": "master", "commit": "4fc96c8f3df89b6d23e5092d31c866c53a346347" },
"nvim-cmp": { "branch": "main", "commit": "8202df9561b90102b41dbc1ad71945534ef4ea39" },
"nvim-colorizer.lua": { "branch": "master", "commit": "760e27df4dd966607e8fb7fd8b6b93e3c7d2e193" },
"nvim-lsp-installer": { "branch": "main", "commit": "17e0bfa5f2c8854d1636fcd036dc8284db136baa" },
"nvim-lspconfig": { "branch": "master", "commit": "255e07ce2a05627d482d2de77308bba51b90470c" },
"nvim-navic": { "branch": "master", "commit": "7e9d2b2b601149fecdccd11b516acb721e571fe6" },
"nvim-notify": { "branch": "master", "commit": "bdd647f61a05c9b8a57c83b78341a0690e9c29d7" },
"nvim-scrollview": { "branch": "main", "commit": "ba6c48bf7919dd48a371e7b9c683b8858053e885" },
"nvim-tree.lua": { "branch": "master", "commit": "66c15afd13da5f86de52b82f38cd9d3f418d0dc3" },
"nvim-treesitter": { "branch": "master", "commit": "ad9ae9e7def54fee446c3e186ed0a0d44cca7b90" },
"nvim-ts-autotag": { "branch": "main", "commit": "fdefe46c6807441460f11f11a167a2baf8e4534b" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "a0f89563ba36b3bacd62cf967b46beb4c2c29e52" },
"nvim-ts-rainbow": { "branch": "master", "commit": "ef95c15a935f97c65a80e48e12fe72d49aacf9b9" },
"nvim-web-devicons": { "branch": "master", "commit": "4709a504d2cd2680fb511675e64ef2790d491d36" },
"plenary.nvim": { "branch": "master", "commit": "253d34830709d690f013daf2853a9d21ad7accab" },
"smart-splits.nvim": { "branch": "master", "commit": "b38431f1f68bc43d6bf9d1edb21c2bcb06b1197c" },
"symbols-outline.nvim": { "branch": "master", "commit": "512791925d57a61c545bc303356e8a8f7869763c" },
"telescope.nvim": { "branch": "master", "commit": "f40e3e2304c633411ddf266075f7db5184b1db02" },
"todo-comments.nvim": { "branch": "main", "commit": "077c59586d9d0726b0696dc5680eb863f4e04bc5" },
"toggleterm.nvim": { "branch": "main", "commit": "2a787c426ef00cb3488c11b14f5dcf892bbd0bda" },
"tokyonight.nvim": { "branch": "main", "commit": "a0abe53df53616d13da327636cb0bcac3ea7f5af" },
"vim-bbye": { "branch": "master", "commit": "903f5eb17f72ebf7b0b1524bbb792c0b36761af6" },
"vim-illuminate": { "branch": "master", "commit": "49062ab1dd8fec91833a69f0a1344223dd59d643" },
"vim-startuptime": { "branch": "master", "commit": "5f52ed26e0296a3e1d1453935f417e5808eefab8" },
"vim-visual-multi": { "branch": "master", "commit": "1c9207b28c8898ab01b54e6d6b61b0b820a814bc" },
"which-key.nvim": { "branch": "main", "commit": "5224c261825263f46f6771f1b644cae33cd06995" },
"wilder.nvim": { "branch": "master", "commit": "679f348dc90d80ff9ba0e7c470c40a4d038dcecf" },
"yanky.nvim": { "branch": "main", "commit": "9fb1c211775b5a6c83b9fe806cfd99f68c65f8a0" }
}
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
"alpha-nvim": { "branch": "main", "commit": "2b3cbcdd980cae1e022409289245053f62fb50f6" },
"auto-bufferline.nvim": { "branch": "main", "commit": "6a69520dcb0dc615df3cf972f69027aae3f75c3e" },
"auto-conform.nvim": { "branch": "main", "commit": "5f0897235e84bf2f8ff9d634e81678d5bfa63ab8" },
"auto-lint.nvim": { "branch": "main", "commit": "aff13cb8eaa055e66e940d43b7d83166397e5413" },
"auto-lsp.nvim": { "branch": "main", "commit": "f32c94fff2862c313f4e150eb39dd0dc9bf18755" },
"auto-lualine.nvim": { "branch": "main", "commit": "201da916411a56d0b27905528a7cb49a320ee054" },
"breadcrumbs.nvim": { "branch": "master", "commit": "9f764278784ce2f10dbe2f555ba14be2451d36a0" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
"cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" },
"cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" },
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
"cmp-rg": { "branch": "master", "commit": "70a43543f61b6083ba9c3b7deb9ccee671410ac6" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"code_runner.nvim": { "branch": "main", "commit": "65c8d11f507073b915f10faa88ea05bd4fbf69ce" },
"colorful-menu.nvim": { "branch": "master", "commit": "bc3e82609f2fcf7dad7ca87c20e65e51d5d9d87c" },
"conform.nvim": { "branch": "master", "commit": "973f3cb73887d510321653044791d7937c7ec0fa" },
"dracula.nvim": { "branch": "main", "commit": "96c9d19ce81b26053055ad6f688277d655b3f7d2" },
"dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" },
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"gitsigns.nvim": { "branch": "main", "commit": "8270378ab83540b03d09c0194ba3e208f9d0cb72" },
"hlchunk.nvim": { "branch": "main", "commit": "474ec5d0f220158afa83aaefab32402e710d3032" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lsp_signature.nvim": { "branch": "master", "commit": "62cadce83aaceed677ffe7a2d6a57141af7131ea" },
"lualine.nvim": { "branch": "master", "commit": "a94fc68960665e54408fe37dcf573193c4ce82c9" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "844d247d998c2f9a6a3baad8bb9748edc55ce69f" },
"mason.nvim": { "branch": "main", "commit": "9e25c98d4826998460926f8c5c2284848d80ae89" },
"multiple-cursors.nvim": { "branch": "main", "commit": "1ac15d047a4b265cc2389957bcc56ee561b29e02" },
"neocodeium": { "branch": "main", "commit": "272aed226827d8dadb85b4d9e2c9bb6bd30b4033" },
"noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" },
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
"nvim-lint": { "branch": "master", "commit": "7ef127aaede2a4d5ad8df8321e2eb4e567f29594" },
"nvim-lspconfig": { "branch": "master", "commit": "d0dbf489a8810672fa9a61f4a86e5cf89214b772" },
"nvim-material-icon": { "branch": "main", "commit": "c25a4e56be2f846dfdf8f30b980adc17f219d019" },
"nvim-navic": { "branch": "master", "commit": "f887d794a0f4594882814d7780980a949200a238" },
"nvim-notify": { "branch": "master", "commit": "397c7c1184745fca649e5104de659e6392ef5a4d" },
"nvim-tree.lua": { "branch": "master", "commit": "65bae449224b8a3bc149471b96587b23b13a9946" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" },
"nvim-web-devicons": { "branch": "master", "commit": "3362099de3368aa620a8105b19ed04c2053e38c0" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"rainbow-delimiters.nvim": { "branch": "master", "commit": "97bf4b8ef9298644a29fcd9dd41a0210cf08cac7" },
"showkeys": { "branch": "main", "commit": "cb0a50296f11f1e585acffba8c253b9e8afc1f84" },
"smart-splits.nvim": { "branch": "master", "commit": "f46b79cf9e83b0a13a4e3f83e3bd5b0d2f172bf2" },
"telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" },
"toggleterm.nvim": { "branch": "main", "commit": "9a88eae817ef395952e08650b3283726786fb5fb" },
"vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" },
"virt-column.nvim": { "branch": "master", "commit": "b87e3e0864211a32724a2ebf3be37e24e9e2fa99" },
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" },
"yanky.nvim": { "branch": "main", "commit": "04775cc6e10ef038c397c407bc17f00a2f52b378" }
}

265
lua/_vscode/functions.lua Normal file
View file

@ -0,0 +1,265 @@
function Active_whichkey()
VSCodeNotify("whichkey.show")
end
function Top_screen()
Cmd("call <SNR>3_reveal('top', 0)")
end
function Bottom_screen()
Cmd("call <SNR>3_reveal('bottom', 0)")
end
function Move_to_top_screen()
Cmd("call <SNR>3_moveCursor('top')")
end
function Move_to_bottom_screen()
Cmd("call <SNR>3_moveCursor('bottom')")
end
function Scroll_line_down()
VSCodeCall("scrollLineDown")
end
function Scroll_line_up()
VSCodeCall("scrollLineUp")
end
function Vscode_ctrl_d()
VSCodeNotify("vscode-neovim.ctrl-d")
end
function Vscode_ctrl_u()
VSCodeNotify("vscode-neovim.ctrl-u")
end
function Move_to_bottom_screen__center_screen()
Move_to_bottom_screen()
Center_screen()
end
function Move_to_top_screen__center_screen()
Move_to_top_screen()
Center_screen()
end
function Trim_trailing_whitespace()
VSCodeCall("editor.action.trimTrailingWhitespace")
end
function Save()
VSCodeCall("workbench.action.files.save")
end
function Save_no_format()
VSCodeCall("workbench.action.files.saveWithoutFormatting")
end
function Trim__save__no_format()
Trim_trailing_whitespace()
Save_no_format()
end
function Trim__save__no_highlight()
Trim_trailing_whitespace()
Save()
Remove_highlighting()
end
function Format()
VSCodeCall("editor.action.formatDocument")
print("formatted!")
end
function Trim__save__format()
Trim_trailing_whitespace()
Format()
Save()
end
function Reveal_definition_aside()
VSCodeNotify("editor.action.revealDefinitionAside")
end
function Go_to_implementation()
VSCodeNotify("editor.action.goToImplementation")
end
function Go_to_reference()
VSCodeNotify("editor.action.goToReferences")
end
function Rename_symbol()
VSCodeNotify("editor.action.rename")
end
function Outdent()
---@diagnostic disable-next-line: unused-local
for i = 1, vim.v.count1 do
VSCodeNotify("editor.action.outdentLines")
end
end
function Indent()
---@diagnostic disable-next-line: unused-local
for i = 1, vim.v.count1 do
VSCodeNotify("editor.action.indentLines")
end
end
function Outdent_vis()
VSCodeNotify("editor.action.outdentLines", false)
end
function Indent_vis()
VSCodeNotify("editor.action.indentLines", false)
end
function Comment()
VSCodeNotify("editor.action.commentLine")
end
function Convert_to_spaces()
VSCodeNotify("editor.action.indentationToSpaces")
end
function Convert_to_tabs()
VSCodeNotify("editor.action.indentationToTabs")
end
function Indent_with_spaces()
VSCodeNotify("editor.action.indentUsingSpaces")
end
function Indent_with_tabs()
VSCodeNotify("editor.action.indentUsingTabs")
end
function CloseEditor()
VSCodeNotify("workbench.action.closeActiveEditor")
end
function UndoCloseEditor()
VSCodeNotify("workbench.action.reopenClosedEditor")
end
function Git_stage_file()
Trim_trailing_whitespace()
Save()
VSCodeNotify("git.stage")
end
function Git_unstage_file()
Save()
VSCodeNotify("git.unstage")
end
function Git_revert_change()
VSCodeNotify("git.revertSelectedRanges")
end
function Git_stage_change()
VSCodeNotify("git.stageSelectedRanges")
end
function Git_unstage_change()
VSCodeNotify("git.unstageSelectedRanges")
end
function Git_open_changes()
VSCodeNotify("git.openChange")
end
function Git_open_all_changes()
VSCodeNotify("git.openAllChanges")
end
function Accept_merge_both()
VSCodeNotify("merge-conflict.accept.both")
end
function Accept_merge_all_both()
VSCodeNotify("merge-conflict.accept.all-both")
end
function Accept_merge_current()
VSCodeNotify("merge-conflict.accept.current")
end
function Accept_merge_all_current()
VSCodeNotify("merge-conflict.accept.all-current")
end
function Accept_merge_incoming()
VSCodeNotify("merge-conflict.accept.incoming")
end
function Accept_merge_all_incoming()
VSCodeNotify("merge-conflict.accept.all-incoming")
end
function Accept_merge_selection()
VSCodeNotify("merge-conflict.accept.selection")
end
function Codesnap()
VSCodeNotify("codesnap.start", true)
end
function Comment_vis()
VSCodeNotify("editor.action.commentLine", false)
end
function Toggle_breakpoint()
VSCodeNotify("editor.debug.action.toggleBreakpoint")
end
function Copy_path()
VSCodeNotify("copyFilePath")
end
function Copy_relative_path()
VSCodeNotify("copyRelativeFilePath")
end
function Active_whichkey()
VSCodeNotify("whichkey.show")
end
function Navigation_down()
VSCodeNotify("workbench.action.navigateDown")
end
function Navigation_up()
VSCodeNotify("workbench.action.navigateUp")
end
function Navigation_left()
VSCodeNotify("workbench.action.navigateLeft")
end
function Navigation_right()
VSCodeNotify("workbench.action.navigateRight")
end
function Select_all()
VSCodeNotify("editor.action.selectAll")
end
function Copy_clipboard()
VSCodeNotify("editor.action.clipboardCopyAction")
end
function Paste_clipboard()
VSCodeNotify("editor.action.clipboardPasteAction")
end
function Save()
VSCodeNotify("workbench.action.files.save")
VSCodeNotify("workbench.action.files.saveAll")
end
function Close()
VSCodeNotify("workbench.action.closeActiveEditor")
end

76
lua/_vscode/mappings.lua Normal file
View file

@ -0,0 +1,76 @@
-- n = normal mode
-- i = insert mode
-- v = visual mode
-- x = visual block mode
-- t = terminal mode
-- c = command mode
-- o = operator pending mode
Map({ "n", "x" }, "<Space>", Active_whichkey)
Map("", "U", Trim__save__format)
Map("n", "gD", Reveal_definition_aside)
Map("n", "gt", Go_to_implementation)
Map("n", "gq", Go_to_reference)
Map("n", ",r", Rename_symbol)
Map("n", "<<", Outdent)
Map("n", ">>", Indent)
Map("n", "gcc", Comment)
Map("n", "=s", Convert_to_spaces)
Map("n", "=t", Convert_to_tabs)
Map("n", "=d", Indent_with_spaces)
Map("n", "=g", Indent_with_tabs)
Map("n", "K", CloseEditor)
Map("n", ",K", UndoCloseEditor)
Map("n", "zk", Git_stage_file)
Map("n", "zK", Git_unstage_file)
Map("n", "zi", Git_open_changes)
Map("n", "zI", Git_open_all_changes)
Map("n", "zy", Toggle_breakpoint)
Map("n", "yr", Copy_relative_path)
Map("n", "yR", Copy_path)
Map({ "n", "i", "v", "x" }, "<C-a>", Select_all)
Map({ "n", "v", "x", "i" }, "y", Copy_clipboard)
Map({ "n", "v", "x", "i" }, "<C-c>", Copy_clipboard)
Map({ "n", "v", "x", "i" }, "p", Paste_clipboard)
Map({ "n", "v", "x", "i" }, "<C-v>", Paste_clipboard)
Map({ "n", "v", "x", "i" }, "<C-s>", Save)
Map({ "n" }, "q", Close)
Map("v", "gs", Codesnap)
Map("v", "<", Outdent_vis)
Map("v", ">", Indent_vis)
Map("v", "gc", Comment_vis)
Map({ "n", "v" }, "zJ", Git_revert_change)
Map({ "n", "v" }, "zj", Git_stage_change)
-- Map({ "n", "v" }, "zt", Vscode_ctrl_d)
-- Map({ "n", "v" }, "zb", Vscode_ctrl_u)
vim.api.nvim_exec(
[[
" THEME CHANGER
function! SetCursorLineNrColorInsert(mode)
" Insert mode: blue
if a:mode == "i"
call VSCodeNotify('nvim-theme.insert')
" Replace mode: red
elseif a:mode == "r"
call VSCodeNotify('nvim-theme.replace')
endif
endfunction
augroup CursorLineNrColorSwap
autocmd!
autocmd ModeChanged *:[vV\x16]* call VSCodeNotify('nvim-theme.visual')
autocmd ModeChanged *:[R]* call VSCodeNotify('nvim-theme.replace')
autocmd InsertEnter * call SetCursorLineNrColorInsert(v:insertmode)
autocmd InsertLeave * call VSCodeNotify('nvim-theme.normal')
autocmd CursorHold * call VSCodeNotify('nvim-theme.normal')
autocmd ModeChanged [vV\x16]*:* call VSCodeNotify('nvim-theme.normal')
augroup END
]],
false
)

View file

@ -0,0 +1,76 @@
local function gradle_new_project()
local function create_notif(message, level)
local notif_ok, notify = pcall(require, "notify")
if notif_ok then
notify(message, level)
else
print(message)
end
end
-- Fungsi untuk meminta input dari pengguna dengan opsi untuk membatalkan
local function get_user_input(prompt, default_value)
vim.fn.inputsave()
local result = vim.fn.input(prompt, default_value)
vim.fn.inputrestore()
-- Cek apakah pengguna menekan Esc untuk membatalkan input
if result == "" then
create_notif("Input canceled.", "info")
return nil, true
end
return result, false
end
-- Ambil input Testing
local test, canceled_test = get_user_input("Testing (junit,junit-jupiter,testng,spock): ", "junit-jupiter")
if canceled_test then
return
end
-- Ambil input DSL
local script_dsl, canceled_dsl = get_user_input("Script DSL (kotlin, groovy): ", "groovy")
if canceled_dsl then
return
end
-- Ambil input package name
local package_name, canceled_package = get_user_input("Enter package name: ", "com.example")
if canceled_package then
return
end
-- Format perintah Gradle berdasarkan input pengguna
local command = string.format(
"echo no | gradle init --type java-application --test-framework %s --dsl %s --package %s --no-daemon",
test,
script_dsl,
package_name
)
-- Fungsi untuk menjalankan perintah Gradle dan menampilkan outputnya
local function run_gradle_command(cmd, path, pkg)
local output = vim.fn.system(cmd)
if vim.v.shell_error ~= 0 then
create_notif("Error executing: " .. output, "error")
else
create_notif("Project created successfully!", "info")
create_notif("Please Reopen Dir : " .. path, "info")
vim.cmd(":NvimTreeFindFileToggle<CR>")
local main_class_path = string.format("%s/app/src/main/java/%s/App.java", path, pkg:gsub("%.", "/"))
if vim.fn.filereadable(main_class_path) == 1 then
vim.cmd(":edit " .. main_class_path)
end
local function delayed_quit()
vim.defer_fn(function()
vim.cmd("qa!")
end, 4000) -- Delay is set in milliseconds (3,000ms = 3 seconds)
end
-- Run the delayed quit function
delayed_quit()
end
end
-- Jalankan perintah Gradle dan buka proyek
run_gradle_command(command, vim.fn.getcwd(), package_name)
end
vim.api.nvim_create_user_command("GradleNewProject", gradle_new_project, {})

View file

@ -0,0 +1,123 @@
local function mvn_new_project()
local function create_notif(message, level)
local notif_ok, notify = pcall(require, "notify")
if notif_ok then
notify(message, level)
else
print(message)
end
end
-- Fungsi untuk meminta input dari pengguna dengan opsi untuk membatalkan
local function get_user_input(prompt, default_value)
vim.fn.inputsave()
local result = vim.fn.input(prompt, default_value)
vim.fn.inputrestore()
-- Cek apakah pengguna menekan Esc untuk membatalkan input
if result == "" then
create_notif("Input canceled.", "info")
return nil, true
end
return result, false
end
-- Ambil input dari pengguna untuk menentukan direktori proyek
local project_dir, canceled = get_user_input("Enter project directory: ", vim.fn.getcwd())
if canceled then
return
end
-- Buat direktori jika belum ada
if vim.fn.isdirectory(project_dir) == 0 then
if vim.fn.mkdir(project_dir, "p") == 0 then
create_notif("Failed to create project directory: " .. project_dir, "error")
return
end
end
-- Pindah ke direktori proyek
-- Hapus satu level dari path
local parent_dir = vim.fn.fnamemodify(project_dir, ":h")
local success, err = pcall(vim.fn.chdir, parent_dir)
if not success then
create_notif("Error changing directory: " .. err, "error")
return
end
create_notif("Changed directory to: " .. project_dir, "info")
-- Fungsi untuk mendapatkan nama direktori terakhir dari path
local function getLastDirName(path)
local uname = vim.loop.os_uname().sysname
local name
if uname == "Windows_NT" then
name = path:match("([^\\]+)$")
else
name = path:match("([^/]+)$")
end
return name
end
-- Ambil input dari pengguna untuk Maven
local group_id, canceled_group = get_user_input("Enter groupId: ", "com.example")
if canceled_group then
return
end
local artifact_id = getLastDirName(project_dir)
local archetype_artifact_id, canceled_archetype =
get_user_input("Enter archetypeArtifactId: ", "maven-archetype-quickstart")
if canceled_archetype then
return
end
local archetype_version, canceled_version = get_user_input("Enter archetypeVersion: ", "1.5")
if canceled_version then
return
end
local interactive_mode, canceled_interactive = get_user_input("Enter interactiveMode (true/false): ", "false")
if canceled_interactive then
return
end
-- Format perintah Maven berdasarkan input pengguna
local command = string.format(
[[mvn archetype:generate "-DgroupId=%s" "-DartifactId=%s" "-DarchetypeArtifactId=%s" "-DarchetypeVersion=%s" "-DinteractiveMode=%s"]],
group_id,
artifact_id,
archetype_artifact_id,
archetype_version,
interactive_mode
)
-- Fungsi untuk menjalankan perintah Maven dan menampilkan outputnya
local function run_maven_command(cmd, project_name)
local output = vim.fn.system(cmd)
if vim.v.shell_error ~= 0 then
print("Erro ao executar: " .. output)
else
local ch_dir = string.format("cd %s", project_name)
vim.fn.system(ch_dir)
vim.fn.chdir(project_name)
-- Cari dan buka file main class
local uname = vim.loop.os_uname().sysname
if uname == "Windows_NT" then
if group_id then
group_id = group_id:gsub("%.", "\\")
local main_class_path = string.format("src\\main\\java\\%s\\App.java", group_id)
if vim.fn.filereadable(main_class_path) == 1 then
vim.cmd(":edit " .. main_class_path)
end
end
else
if group_id then
group_id = group_id:gsub("%.", "/")
local main_class_path = string.format("src/main/java/%s/App.java", group_id)
if vim.fn.filereadable(main_class_path) == 1 then
vim.cmd(":edit " .. main_class_path)
end
end
end
vim.cmd(":NvimTreeFindFileToggl<CR>")
end
end
-- Jalankan perintah Maven dan buka proyek
run_maven_command(command, artifact_id)
create_notif("Project created successfully !", "info")
end
vim.api.nvim_create_user_command("MavenNewProject", mvn_new_project, {})

View file

@ -0,0 +1,289 @@
local function create_notif(message, level)
local notif_ok, notify = pcall(require, "notify")
if notif_ok then
notify(message, level)
else
print(message)
end
end
local function safe_request(url)
local status, request = pcall(function()
return vim.system({ "curl", "-s", url }, { text = true }):wait()
end)
if not status then
vim.api.nvim_err_writeln("Error making request to " .. url .. ": " .. request)
return nil
end
return request
end
local function safe_json_decode(data)
local status, decoded = pcall(vim.fn.json_decode, data)
if not status then
vim.api.nvim_err_writeln("Error decoding JSON: " .. decoded)
return nil
end
return decoded
end
local function contains(list, element)
for _, value in pairs(list) do
if value == element then
return true
end
end
return false
end
local function list_to_string(list, is_err)
local result = ""
for i, value in ipairs(list) do
if is_err then
result = result .. "'" .. tostring(value) .. "'"
else
result = result .. tostring(value)
end
if i < #list then
if is_err then
result = result .. " or "
else
result = result .. "/"
end
end
end
return result
end
local function handle_start_springboot_data(data)
local spring_data = {}
for _, value in pairs(data.values) do
table.insert(spring_data, value.id)
end
return spring_data
end
local function change_directory()
-- Fungsi untuk meminta input dari pengguna dengan opsi untuk membatalkan
local function get_user_input(prompt, default_value)
vim.fn.inputsave()
local result = vim.fn.input(prompt, default_value)
vim.fn.inputrestore()
-- Cek apakah pengguna menekan Esc untuk membatalkan input
if result == "" then
create_notif("Input canceled.", "info")
return nil, true
end
return result, false
end
-- Ambil input dari pengguna untuk menentukan direktori proyek
local project_dir, canceled = get_user_input("Enter project directory: ", vim.fn.getcwd())
if canceled then
return
end
-- Buat direktori jika belum ada
if vim.fn.isdirectory(project_dir) == 0 then
if vim.fn.mkdir(project_dir, "p") == 0 then
create_notif("Failed to create project directory: " .. project_dir, "error")
return
end
end
-- Pindah ke direktori proyek
local success, err = pcall(vim.fn.chdir, project_dir)
if not success then
create_notif("Error changing directory: " .. err, "error")
return
end
create_notif("Changed directory to: " .. project_dir, "info")
return project_dir
end
local function get_build_type(data_available)
local build_type_available = list_to_string(data_available, false)
local options_err = list_to_string(data_available, true)
local build_type = vim.fn.input("Enter build type (" .. build_type_available .. "): ", "maven")
if not contains(data_available, build_type) then
create_notif("Invalid build type. Please enter " .. options_err .. ".", "info")
return ""
end
return build_type
end
local function get_language(data_available)
local language_available = list_to_string(data_available, false)
local options_err = list_to_string(data_available, true)
local language = vim.fn.input("Enter Language (" .. language_available .. "): ", "java")
if not contains(data_available, language) then
create_notif("Invalid language. Please enter " .. options_err .. ".", "info")
return ""
end
return language
end
local function get_java_version(data_available)
local version_available = list_to_string(data_available, false)
local options_err = list_to_string(data_available, true)
local java_version = vim.fn.input("Enter Java Version (" .. version_available .. "): ", "21")
if not contains(data_available, java_version) then
create_notif("Invalid Java version. Please enter a valid version " .. options_err .. ".", "info")
return ""
end
return java_version
end
local function get_boot_version(data_available)
local version_available = list_to_string(data_available, false)
local options_err = list_to_string(data_available, true)
local versions_table = {}
for v in string.gmatch(version_available, "([^/]+)") do
table.insert(versions_table, "-> " .. v)
end
local annotated_versions = table.concat(versions_table, "\n")
local boot_version = vim.fn.input(annotated_versions .. "\n: ", "3.3.5.RELEASE")
if not contains(data_available, boot_version) then
create_notif("Invalid Spring Boot version. Please enter a valid version " .. options_err .. ".", "info")
return ""
end
return boot_version
end
local function get_packaging(data_available)
local packaging_available = list_to_string(data_available, false)
local options_err = list_to_string(data_available, true)
local packaging = vim.fn.input("Enter Packaging(" .. packaging_available .. "): ", "jar")
if packaging ~= "jar" and packaging ~= "war" then
create_notif("Invalid packaging. Please enter " .. options_err .. ".", "info")
return ""
end
return packaging
end
local function springboot_new_project()
local request = safe_request("https://start.spring.io/metadata/client")
if not request then
vim.api.nvim_err_writeln("Failed to make a request to the URL.")
return false
end
local springboot_data = safe_json_decode(request.stdout)
if not springboot_data then
vim.api.nvim_err_writeln("Failed to decode JSON from the request.")
return false
end
local project_dir = change_directory()
local build_types = { "maven", "gradle" }
local languages = handle_start_springboot_data(springboot_data.language)
local java_versions = handle_start_springboot_data(springboot_data.javaVersion)
local boot_versions = handle_start_springboot_data(springboot_data.bootVersion)
local packagings = handle_start_springboot_data(springboot_data.packaging)
local build_type = get_build_type(build_types)
if build_type:len() == 0 then
return
end
local language = get_language(languages)
if language:len() == 0 then
return
end
local java_version = get_java_version(java_versions)
if java_version:len() == 0 then
return
end
local boot_version = get_boot_version(boot_versions)
if boot_version:len() == 0 then
return
end
local packaging = get_packaging(packagings)
if packaging:len() == 0 then
return
end
local dependencies = vim.fn.input("Enter dependencies (comma separated): ", "devtools,web,data-jpa,h2,thymeleaf")
local group_id = vim.fn.input("Enter Group ID: ", "com.example")
local artifact_id = vim.fn.input("Enter Artifact ID: ", "myproject")
local name = vim.fn.input("Enter project name: ", artifact_id)
local package_name = vim.fn.input("Enter package name: ", group_id .. "." .. artifact_id)
local description = vim.fn.input("Enter project description: ", "")
local command = string.format(
"spring init --boot-version=%s --java-version=%s --dependencies=%s --groupId=%s --artifactId=%s --name=%s --package-name=%s --description=%s --language=%s --build=%s %s",
boot_version,
java_version,
dependencies,
group_id,
artifact_id,
name,
package_name,
description, -- Menambahkan deskripsi proyek
language, -- Menambahkan bahasa pemrograman (Java, Kotlin, atau Groovy)
build_type,
name
)
-- Fungsi untuk mengubah teks
local function capitalize_first_letter(str)
return str:sub(1, 1):upper() .. str:sub(2):lower()
end
local output = vim.fn.system(command)
if vim.v.shell_error ~= 0 then
create_notif("Erro ao executar: " .. output, "error")
else
local ch_dir = string.format("cd %s", project_dir .. "/" .. name)
vim.fn.system(ch_dir)
vim.fn.chdir(project_dir .. "/" .. name)
create_notif(name, "info")
-- Cari dan buka file main class
local uname = vim.loop.os_uname().sysname
local pth = package_name
if uname == "Windows_NT" then
if pth then
pth = pth:gsub("%.", "\\")
create_notif(pth, "info")
local main_class_path =
string.format("src\\main\\java\\%s\\" .. capitalize_first_letter(name) .. "Application.java", pth)
create_notif(main_class_path, "info")
if vim.fn.filereadable(main_class_path) == 1 then
vim.cmd(":edit " .. main_class_path)
end
end
else
if pth then
pth = pth:gsub("%.", "/")
local main_class_path =
string.format("src/main/java/%s/" .. capitalize_first_letter(name) .. "Application.java", pth)
if vim.fn.filereadable(main_class_path) == 1 then
vim.cmd(":edit " .. main_class_path)
end
end
end
vim.cmd(":NvimTreeFindFileToggl<CR>")
end
create_notif("Project created successfully!", "info")
end
vim.api.nvim_create_user_command("SpringBootNewProject", springboot_new_project, {})

View file

@ -0,0 +1,106 @@
local function create_java_class()
local is_maven_project = function()
if vim.fn.findfile("pom.xml", vim.fn.getcwd()) == "pom.xml" then
return true
else
return false
end
end
local function create_notif(message, level)
local notif_ok, notify = pcall(require, "notify")
if notif_ok then
notify(message, level)
else
print(message)
end
end
-- Fungsi untuk meminta input dari pengguna dengan opsi untuk membatalkan
local function get_user_input(prompt, default_value)
vim.fn.inputsave()
local result = vim.fn.input(prompt, default_value)
vim.fn.inputrestore()
-- Cek apakah pengguna menekan Esc untuk membatalkan input
if result == "" then
create_notif("Input canceled.", "info")
return nil, true
end
return result, false
end
-- Fungsi untuk mendapatkan nama package default berdasarkan buffer aktif
local function get_default_package()
local path = vim.fn.expand("%:p:h")
local project_root = vim.fn.getcwd()
local relative_path = path:sub(#project_root + 1)
relative_path = relative_path:gsub("app\\src\\main\\java\\", "")
relative_path = relative_path:gsub("src\\main\\java\\", "")
relative_path = relative_path:gsub("app/src/main/java/", "")
relative_path = relative_path:gsub("src/main/java/", "")
relative_path = relative_path:gsub("\\", ".")
relative_path = relative_path:gsub("/", ".")
return relative_path:sub(2)
end
-- Ambil input dari pengguna untuk nama package dan nama kelas
local package_name, canceled_package = get_user_input("Enter package name: ", get_default_package())
if canceled_package then
return
end
local class_name, canceled_class = get_user_input("Enter class name: ", "MyClass")
if canceled_class then
return
end
-- Format direktori dan path file berdasarkan input pengguna
local package_dir = nil
if package_name then
if is_maven_project() then
package_dir = string.format("src/main/java/%s", package_name:gsub("%.", "/"))
else
package_dir = string.format("app/src/main/java/%s", package_name:gsub("%.", "/"))
end
if vim.fn.isdirectory(package_dir) == 0 then
vim.fn.mkdir(package_dir, "p")
end
else
create_notif("Invalid package name: " .. package_name, "error")
return
end
local file_path = string.format("%s/%s.java", package_dir, class_name)
if vim.fn.filereadable(file_path) == 1 then
create_notif("Class already exists: " .. file_path, "error")
return
end
-- Tulis konten kelas Java ke dalam file
local class_content = string.format(
[[
package %s;
public class %s {
}
]],
package_name,
class_name,
class_name
)
local file = io.open(file_path, "w")
if file then
file:write(class_content)
file:close()
end
-- Buka file Java yang baru dibuat di Neovim
vim.cmd(":edit " .. file_path)
create_notif("Java class created: " .. file_path, "info")
end
vim.api.nvim_create_user_command("CreateJavaClass", create_java_class, {})

View file

@ -0,0 +1,109 @@
local function create_java_class()
local function create_notif(message, level)
local notif_ok, notify = pcall(require, "notify")
if notif_ok then
notify(message, level)
else
print(message)
end
end
local is_maven_project = function()
if vim.fn.findfile("pom.xml", vim.fn.getcwd()) == "pom.xml" then
return true
else
return false
end
end
-- Fungsi untuk meminta input dari pengguna dengan opsi untuk membatalkan
local function get_user_input(prompt, default_value)
vim.fn.inputsave()
local result = vim.fn.input(prompt, default_value)
vim.fn.inputrestore()
-- Cek apakah pengguna menekan Esc untuk membatalkan input
if result == "" then
create_notif("Input canceled.", "info")
return nil, true
end
return result, false
end
-- Fungsi untuk mendapatkan nama package default berdasarkan buffer aktif
local function get_default_package()
local path = vim.fn.expand("%:p:h")
local project_root = vim.fn.getcwd()
local relative_path = path:sub(#project_root + 1)
relative_path = relative_path:gsub("app\\src\\main\\java\\", "")
relative_path = relative_path:gsub("src\\main\\java\\", "")
relative_path = relative_path:gsub("app/src/main/java/", "")
relative_path = relative_path:gsub("src/main/java/", "")
relative_path = relative_path:gsub("\\", ".")
relative_path = relative_path:gsub("/", ".")
return relative_path:sub(2)
end
-- Ambil input dari pengguna untuk nama package dan nama kelas
local package_name, canceled_package = get_user_input("Enter package name: ", get_default_package())
if canceled_package then
return
end
local class_name, canceled_class = get_user_input("Enter interface name: ", "MyInterface")
if canceled_class then
return
end
-- Format direktori dan path file berdasarkan input pengguna
local package_dir = nil
if package_name then
if is_maven_project() then
package_dir = string.format("src/main/java/%s", package_name:gsub("%.", "/"))
else
package_dir = string.format("app/src/main/java/%s", package_name:gsub("%.", "/"))
end
if vim.fn.isdirectory(package_dir) == 0 then
vim.fn.mkdir(package_dir, "p")
end
else
create_notif("Invalid package name: " .. package_name, "error")
return
end
local file_path = string.format("%s/%s.java", package_dir, class_name)
if vim.fn.filereadable(file_path) == 1 then
create_notif("Class already exists: " .. file_path, "error")
return
end
-- Tulis konten kelas Java ke dalam file
local class_content = string.format(
[[
/*
* This Java source file.
*/
package %s;
public interface %s {
// Other methods and fields
}
]],
package_name,
class_name,
class_name
)
local file = io.open(file_path, "w")
if file then
file:write(class_content)
file:close()
end
-- Buka file Java yang baru dibuat di Neovim
vim.cmd(":edit " .. file_path)
create_notif("Java interface created: " .. file_path, "info")
end
vim.api.nvim_create_user_command("CreateJavaInterface", create_java_class, {})

View file

@ -0,0 +1,115 @@
local function create_java_main_class()
local function create_notif(message, level)
local notif_ok, notify = pcall(require, "notify")
if notif_ok then
notify(message, level)
else
print(message)
end
end
local is_maven_project = function()
if vim.fn.findfile("pom.xml", vim.fn.getcwd()) == "pom.xml" then
return true
else
return false
end
end
-- Fungsi untuk meminta input dari pengguna dengan opsi untuk membatalkan
local function get_user_input(prompt, default_value)
vim.fn.inputsave()
local result = vim.fn.input(prompt, default_value)
vim.fn.inputrestore()
-- Cek apakah pengguna menekan Esc untuk membatalkan input
if result == "" then
create_notif("Input canceled.", "info")
return nil, true
end
return result, false
end
-- Fungsi untuk mendapatkan nama package default berdasarkan buffer aktif
local function get_default_package()
local path = vim.fn.expand("%:p:h")
local project_root = vim.fn.getcwd()
local relative_path = path:sub(#project_root + 1)
relative_path = relative_path:gsub("app\\src\\main\\java\\", "")
relative_path = relative_path:gsub("src\\main\\java\\", "")
relative_path = relative_path:gsub("app/src/main/java/", "")
relative_path = relative_path:gsub("src/main/java/", "")
relative_path = relative_path:gsub("\\", ".")
relative_path = relative_path:gsub("/", ".")
return relative_path:sub(2)
end
-- Ambil input dari pengguna untuk nama package dan nama kelas
local package_name, canceled_package = get_user_input("Enter package name: ", get_default_package())
if canceled_package then
return
end
local class_name, canceled_class = get_user_input("Enter class name: ", "MyMainClass")
if canceled_class then
return
end
-- Format direktori dan path file berdasarkan input pengguna
local package_dir = nil
if package_name then
if is_maven_project() then
package_dir = string.format("src/main/java/%s", package_name:gsub("%.", "/"))
else
package_dir = string.format("app/src/main/java/%s", package_name:gsub("%.", "/"))
end
if vim.fn.isdirectory(package_dir) == 0 then
vim.fn.mkdir(package_dir, "p")
end
else
create_notif("Invalid package name: " .. package_name, "error")
return
end
local file_path = string.format("%s/%s.java", package_dir, class_name)
if vim.fn.filereadable(file_path) == 1 then
create_notif("Class already exists: " .. file_path, "error")
return
end
-- Tulis konten kelas Java ke dalam file
local class_content = string.format(
[[
/*
* This Java source file.
*/
package %s;
public class %s {
/**
*
*/
public static void main(String[] args) {
System.out.println("Hello World");
}
}
]],
package_name,
class_name,
class_name
)
local file = io.open(file_path, "w")
if file then
file:write(class_content)
file:close()
end
-- Buka file Java yang baru dibuat di Neovim
vim.cmd(":edit " .. file_path)
create_notif("Java class created: " .. file_path, "info")
end
vim.api.nvim_create_user_command("CreateJavaMainClass", create_java_main_class, {})

15
lua/auto-jdtls2/init.lua Normal file
View file

@ -0,0 +1,15 @@
local M = {}
M.setup = function(opt)
opt = opt or {}
require("auto-jdtls2.create_gradle_project")
require("auto-jdtls2.create_maven_project")
require("auto-jdtls2.create_springboot_project")
require("auto-jdtls2.generate_java_class")
require("auto-jdtls2.generate_java_interface")
require("auto-jdtls2.generate_java_main_class")
-- require("auto-jdtls2.utils").install()
-- require("auto-jdtls2.utils").attach_jdtls(opt)
end
return M

449
lua/auto-jdtls2/utils.lua Normal file
View file

@ -0,0 +1,449 @@
local M = {}
M.java_filetypes = { "java" }
M.root_markers = { ".git", "mvnw", "gradlew", "pom.xml", "build.gradle" }
-- Utility function to extend or override a config table, similar to the way
-- that Plugin.opts works.
---@param config table
---@param custom function | table | nil
M.extend_or_override = function(config, custom, ...)
if type(custom) == "function" then
config = custom(config, ...) or config
elseif custom then
config = vim.tbl_deep_extend("force", config, custom) --[[@as table]]
end
return config
end
function M.capabilities()
local status_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp")
if status_ok then
return cmp_nvim_lsp.default_capabilities()
end
local CAPABILITIES = vim.lsp.protocol.make_client_capabilities()
CAPABILITIES.textDocument.completion.completionItem.snippetSupport = true
CAPABILITIES.textDocument.completion.completionItem.resolveSupport = {
properties = {
"documentation",
"detail",
"additionalTextEdits",
},
}
return CAPABILITIES
end
-- stylua: ignore
M.lsp_keymaps=function ()
vim.keymap.set({ "n", "v" }, "<leader>l", "", { desc = "LSP" })
-- Set vim motion for <Space> + l + h to show code documentation about the code the cursor is currently over if available
vim.keymap.set("n", "<leader>lh", vim.lsp.buf.hover, { desc = "Code Hover Documentation" })
-- Set vim motion for <Space> + l + d to go where the code/variable under the cursor was defined
vim.keymap.set("n", "<leader>ld", vim.lsp.buf.definition, { desc = "Code Goto Definition" })
-- Set vim motion for <Space> + l + a for display code action suggestions for code diagnostics in both normal and visual mode
vim.keymap.set({ "n", "v" }, "<leader>la", vim.lsp.buf.code_action, { desc = "Code Actions" })
-- Set vim motion for <Space> + l + r to display references to the code under the cursor
vim.keymap.set("n", "<leader>lr", require("telescope.builtin").lsp_references, { desc = "Code Goto References" })
-- Set vim motion for <Space> + l + i to display implementations to the code under the cursor
vim.keymap.set("n", "<leader>li", require("telescope.builtin").lsp_implementations, { desc = "Code Goto Implementations" })
-- Set a vim motion for <Space> + l + <Shift>R to smartly rename the code under the cursor
vim.keymap.set("n", "<leader>lR", vim.lsp.buf.rename, { desc = "Code Rename" })
-- Set a vim motion for <Space> + l + <Shift>D to go to where the code/object was declared in the project (class file)
vim.keymap.set("n", "<leader>lD", vim.lsp.buf.declaration, { desc = "Code Goto Declaration" })
end
M.is_maven_project = function()
if vim.fn.findfile("pom.xml", vim.fn.getcwd()) == "pom.xml" then
return true
else
return false
end
end
M.is_gradle_project = function()
if
vim.fn.findfile("build.gradle", vim.fn.getcwd()) == "build.gradle"
or vim.fn.findfile("settings.gradle", vim.fn.getcwd()) == "settings.gradle"
or vim.fn.findfile("gradlew", vim.fn.getcwd()) == "gradlew"
then
return true
else
return false
end
end
M.is_main_class = function()
local bufnr = vim.api.nvim_get_current_buf()
local content = vim.api.nvim_buf_get_lines(bufnr, 0, -1, false)
for i, line in ipairs(content) do
if line:match("public static void main%s*%(") then
return true
end
end
return false
end
M.run_aven_pring_boot = function()
if M.is_maven_project() then
vim.cmd("terminal mvn spring-boot:run")
else
local notif_ok, notify = pcall(require, "notify")
if notif_ok then
notify("Project pom.xml not found !", "info")
else
print("Project pom.xml not found !")
end
end
end
M.cmd_maven_spring_boot = function()
vim.api.nvim_create_user_command("RunMvnSpringBoot", function()
M.run_aven_pring_boot()
end, { nargs = 0 })
end
M.run_gradle_spring_boot = function()
if M.is_gradle_project() then
local uname = vim.loop.os_uname().sysname
if uname == "Windows_NT" then
vim.cmd("terminal .\\gradlew build --continuous")
vim.cmd("terminal .\\gradlew bootRun")
else
vim.cmd("terminal ./gradlew build --continuous")
vim.cmd("terminal ./gradlew bootRun")
end
else
local notif_ok, notify = pcall(require, "notify")
if notif_ok then
notify("Project build.gradle not found !", "info")
else
print("Project build.gradle not found !")
end
end
end
M.cmd_gradle_spring_boot = function()
vim.api.nvim_create_user_command("RunGradleSpringBoot", function()
M.run_gradle_spring_boot()
end, { nargs = 0 })
end
M.run_mvn_and_java = function()
if M.is_maven_project() then
local result = M.is_main_class()
if not result then
local notif_ok, notify = pcall(require, "notify")
if notif_ok then
notify("Please open java main class !", "info")
else
print("Please open java main class !")
end
return
else
-- Fungsi untuk mencari file .jar dalam folder target
local function find_jar_file()
local target_dir = "target"
local jar_file = nil
local handle = vim.loop.fs_scandir(target_dir)
if handle then
while true do
local name, t = vim.loop.fs_scandir_next(handle)
if not name then
break
end
if t == "file" and name:match("%.jar$") then
jar_file = name
break
end
end
end
return jar_file
end
local jar_file = find_jar_file()
-- Buat fungsi untuk menjalankan perintah secara berurutan dalam mode diam
function RunMvnAndJava()
-- daptkan path
local root = vim.uv.cwd()
local fname = vim.api.nvim_buf_get_name(0)
fname = fname:gsub(root, "")
fname = fname:gsub("/src/main/java/", "")
fname = fname:gsub("\\src\\main\\java\\", "")
fname = fname:gsub(".java", ""):gsub("/", ".")
fname = fname:gsub("\\", ".")
-- Jalankan perintah mvn package secara diam-diam
local notif_ok, notify = pcall(require, "notify")
if notif_ok then
notify("Compile Start !", "info")
end
vim.fn.jobstart("mvn package", {
on_exit = function()
vim.cmd("terminal java -cp target/" .. jar_file .. " " .. fname)
end,
})
end
RunMvnAndJava()
end
else
local notif_ok, notify = pcall(require, "notify")
if notif_ok then
notify("Project pom.xml not found !", "info")
else
print("Project pom.xml not found !")
end
end
end
M.cmd_mvn_and_java = function()
vim.api.nvim_create_user_command("RunMaven", function()
M.run_mvn_and_java()
end, { nargs = 0 })
end
M.cmd_gradle = function()
vim.api.nvim_create_user_command("RunGradle", function()
vim.cmd("terminal gradle run")
end, { nargs = 0 })
end
-- stylua: ignore
M.jdtls_keymaps=function ()
-- add keymaps
vim.keymap.set('n', '<leader>J', "", { desc = "Java" })
-- Set a Vim motion to <Space> + <Shift>J + o to organize imports in normal mode
vim.keymap.set('n', '<leader>Jo', "<Cmd> lua require('jdtls').organize_imports()<CR>", { desc = "Java Organize Imports" })
-- Set a Vim motion to <Space> + <Shift>J + v to extract the code under the cursor to a variable
vim.keymap.set('n', '<leader>Jv', "<Cmd> lua require('jdtls').extract_variable()<CR>", { desc = "Java Extract Variable" })
-- Set a Vim motion to <Space> + <Shift>J + v to extract the code selected in visual mode to a variable
vim.keymap.set('v', '<leader>Jv', "<Esc><Cmd> lua require('jdtls').extract_variable(true)<CR>", { desc = "Java Extract Variable" })
-- Set a Vim motion to <Space> + <Shift>J + <Shift>C to extract the code under the cursor to a static variable
vim.keymap.set('n', '<leader>JC', "<Cmd> lua require('jdtls').extract_constant()<CR>", { desc = "Java Extract Constant" })
-- Set a Vim motion to <Space> + <Shift>J + <Shift>C to extract the code selected in visual mode to a static variable
vim.keymap.set('v', '<leader>JC', "<Esc><Cmd> lua require('jdtls').extract_constant(true)<CR>", { desc = "Java Extract Constant" })
-- Set a Vim motion to <Space> + <Shift>J + t to run the test method currently under the cursor
vim.keymap.set('n', '<leader>Jt', "<Cmd> lua require('jdtls').test_nearest_method()<CR>", { desc = "Java Test Method" })
-- Set a Vim motion to <Space> + <Shift>J + t to run the test method that is currently selected in visual mode
vim.keymap.set('v', '<leader>Jt', "<Esc><Cmd> lua require('jdtls').test_nearest_method(true)<CR>", { desc = "Java Test Method" })
-- Set a Vim motion to <Space> + <Shift>J + <Shift>T to run an entire test suite (class)
vim.keymap.set('n', '<leader>JT', "<Cmd> lua require('jdtls').test_class()<CR>", { desc = "Java Test Class" })
-- Set a Vim motion to <Space> + <Shift>J + u to update the project configuration
vim.keymap.set('n', '<leader>Ju', "<Cmd> JdtUpdateConfig<CR>", { desc = "Java Update Config" })
end
M.opts = {
root_dir = require("jdtls.setup").find_root(M.root_markers),
project_name = function()
return vim.fn.fnamemodify(vim.fn.getcwd(), ":p:h:t")
end,
get_jdtls = function()
local function check_os()
local uname = vim.loop.os_uname().sysname
if uname == "Darwin" then
return "mac"
elseif uname == "Windows_NT" then
return "win"
elseif uname == "Linux" then
return "linux"
else
return "unknown"
end
end
local mason_registry = require("mason-registry")
local jdtls = mason_registry.get_package("jdtls")
local jdtls_path = jdtls:get_install_path()
local launcher = vim.fn.glob(jdtls_path .. "/plugins/org.eclipse.equinox.launcher_*.jar")
local SYSTEM = check_os()
local config = jdtls_path .. "/config_" .. SYSTEM
local lombok = jdtls_path .. "/lombok.jar"
return launcher, config, lombok
end,
jdtls_workspace_dir = function(project_name)
local function get_workspace()
local home = os.getenv("HOME")
local workspace_path = home .. "/code/workspace/"
local workspace_dir = workspace_path .. project_name
return workspace_dir
end
return get_workspace()
end,
full_cmd = function(opts)
local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":p:h:t")
local launcher, os_config, lombok = opts.get_jdtls()
local cmd = {
"java",
"-Declipse.application=org.eclipse.jdt.ls.core.id1",
"-Dosgi.bundles.defaultStartLevel=4",
"-Declipse.product=org.eclipse.jdt.ls.core.product",
"-Dlog.protocol=true",
"-Dlog.level=ALL",
"-Xmx1g",
"--add-modules=ALL-SYSTEM",
"--add-opens",
"java.base/java.util=ALL-UNNAMED",
"--add-opens",
"java.base/java.lang=ALL-UNNAMED",
"-javaagent:" .. lombok,
"-jar",
launcher,
"-configuration",
os_config,
"-data",
opts.jdtls_workspace_dir(project_name),
}
return cmd
end,
-- These depend on nvim-dap, but can additionally be disabled by setting false here.
dap = { hotcodereplace = "auto", config_overrides = {} },
dap_main = {},
test = true,
settings = {
java = {
inlayHints = {
parameterNames = {
enabled = "all",
},
},
},
},
}
M.attach_jdtls = function(op)
M.opts = M.extend_or_override(M.opts, op or {})
local opt = vim.opt
opt.shiftwidth = 4
opt.tabstop = 4
opt.softtabstop = 4
opt.ts = 4
opt.expandtab = true
-- Check Ttriisittrer
local function ensure_ts_install(lang)
local parsers = require("nvim-treesitter.parsers")
local installed = parsers.has_parser(lang)
if not installed then
vim.cmd("TSInstall " .. lang)
require("notify")("Treesitter parser for " .. lang .. " installed successfully.")
end
end
-- Memeriksa dan menginstal atau mengonfirmasi Treesitter untuk Java
ensure_ts_install("java")
local mason_registry = require("mason-registry")
if
not mason_registry.is_installed("jdtls")
or not mason_registry.is_installed("java-debug-adapter")
or not mason_registry.is_installed("java-test")
then
vim.cmd("Mason")
require("notify")("Mason Installed Dependency, please restart nvim after installation is completed")
return
end
local bundles = {} ---@type string[]
if M.opts.dap and mason_registry.is_installed("java-debug-adapter") then
local java_dbg_pkg = mason_registry.get_package("java-debug-adapter")
local java_dbg_path = java_dbg_pkg:get_install_path()
local jar_patterns = {
java_dbg_path .. "/extension/server/com.microsoft.java.debug.plugin-*.jar",
}
-- java-test also depends on java-debug-adapter.
if M.opts.test and mason_registry.is_installed("java-test") then
local java_test_pkg = mason_registry.get_package("java-test")
local java_test_path = java_test_pkg:get_install_path()
vim.list_extend(jar_patterns, {
java_test_path .. "/extension/server/*.jar",
})
end
for _, jar_pattern in ipairs(jar_patterns) do
for _, bundle in ipairs(vim.split(vim.fn.glob(jar_pattern), "\n")) do
table.insert(bundles, bundle)
end
end
end
-- initialisasi config
local function attach_jdtls()
-- load user cmd
M.cmd_maven_spring_boot()
M.cmd_gradle_spring_boot()
M.cmd_mvn_and_java()
M.cmd_gradle()
-- Configuration can be augmented and overridden by opts.jdtls
local config = M.extend_or_override({
cmd = M.opts.full_cmd(M.opts),
root_dir = require("jdtls.setup").find_root(M.root_markers),
init_options = {
bundles = bundles,
},
settings = M.opts.settings,
-- enable CMP capabilities
-- capabilities = require("user.lsp.handlers").capabilities or nil,
-- capabilities = require("auto-lsp.lsp.handlers").capabilities or nil,
capabilities = M.capabilities() or nil,
}, M.opts.jdtls)
-- Existing server will be reused if the root_dir matches.
require("jdtls").start_or_attach(config)
end
vim.api.nvim_create_autocmd("FileType", {
pattern = M.java_filetypes,
callback = attach_jdtls,
})
vim.api.nvim_create_autocmd("LspAttach", {
callback = function(args)
local client = vim.lsp.get_client_by_id(args.data.client_id)
-- stylua: ignore
if client and client.name == "jdtls" then
-- M.jdtls_keymaps()
-- M.lsp_keymaps()
if M.opts.dap and mason_registry.is_installed("java-debug-adapter") then
-- custom init for Java debugger
require("jdtls").setup_dap(M.opts.dap)
require("jdtls.dap").setup_dap_main_class_configs(M.opts.dap_main)
end
-- User can set additional keymaps in opts.on_attach
if M.opts.on_attach then
M.opts.on_attach(args)
end
end
end,
})
attach_jdtls()
end
M.install = function()
local ensure_installed = {
"java-debug-adapter",
"java-test",
"jdtls",
}
local mr = require("mason-registry")
mr:on("package:install:success", function()
vim.defer_fn(function()
-- trigger FileType event to possibly load this newly installed LSP server
require("lazy.core.handler.event").trigger({
event = "FileType",
buf = vim.api.nvim_get_current_buf(),
})
end, 100)
end)
mr.refresh(function()
for _, tool in ipairs(ensure_installed) do
local p = mr.get_package(tool)
if not p:is_installed() then
p:install()
end
end
end)
end
return M

View file

@ -1,38 +0,0 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
-- bootstrap lazy.nvim
-- stylua: ignore
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
end
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
vim.g.mapleader = " "
vim.g.maplocalleader = " "
require("lazy").setup({
spec = {
{ import = "plugins" },
{ import = "custom.plugins" },
},
defaults = {
lazy = true, -- every plugin is lazy-loaded by default
version = "*", -- try installing the latest stable version for plugins that support semver
},
ui = { border = "rounded", browser = "chrome", throttle = 40, custom_keys = { ["<localleader>l"] = false } },
change_detection = { enabled = false, notify = false },
checker = { enabled = true }, -- automatically check for plugin updates
performance = {
rtp = {
-- disable some rtp plugins
disabled_plugins = {
"gzip",
"matchit",
"matchparen",
"netrwPlugin",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
"lazyredraw",
},
},
},
})

View file

@ -1,14 +0,0 @@
require("config.lazy")
-- require("user.options")
-- require("user.keymaps")
-- require("user.autocommands")
-- require("user.format_onsave")
-- require("user.colorscheme")
-- require("user.snip")
-- require("user.bufferline")
-- require("user.chat_gpt")
require("user.options")
require("user.keymaps")
require("user.autocommands")
require("user.format_onsave")
require("user.treesitter")

View file

@ -1,27 +0,0 @@
local M = {}
-- Untuk Ubah Dashboard
-- 1. Buka remark dash board dibawah
-- 2. Ubah dashboard sesuai keinginan dan kebutuhan
-- M.dashboard1 = {
-- [[ _ __ __ ]],
-- [[ ___ ___ (____ / /__ _______ ___/ ___ ]],
-- [[ / _ / _ \ / / _ \/ '_/ / __/ _ / _ / -_) ]],
-- [[ / .__\_____/ /\___/_/\_\ \__/\___\_,_/\__/ ]],
-- [[ /_/ |___/ ]],
-- }
-- M.dashboard2 = {
-- [[ __ ]],
-- [[ ___ ___ ___ __ __ /\_\ ___ ___ ]],
-- [[ / _ `\ / __`\ / __`\/\ \/\ \\/\ \ / __` __`\ ]],
-- [[/\ \/\ \/\ __//\ \_\ \ \ \_/ |\ \ \/\ \/\ \/\ \ ]],
-- [[\ \_\ \_\ \____\ \____/\ \___/ \ \_\ \_\ \_\ \_\]],
-- [[ \/_/\/_/\/____/\/___/ \/__/ \/_/\/_/\/_/\/_/]],
-- }
-- M.footer = "PCode"
M.model = 1 -- isi dengan 1 atau 2 untuk model dashboard
return M

View file

@ -1,5 +0,0 @@
local M = {
disable = 0, -- 0 ( format jalan) 1 (fromat off)
}
return M

View file

@ -1,10 +0,0 @@
-- ini hanya untuk lsp yg tidak support masson
-- untuk referesi support language kunjungi link dibawah
-- https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
local m = {
lspinstall = {
"yamlls",
-- tambahkan di bawah sini setelah melakukan :masoninstall
},
}
return m

View file

@ -1,10 +0,0 @@
local null_ls = require("null-ls")
local formatting = null_ls.builtins.formatting
local diagnostics = null_ls.builtins.diagnostics
local m = {
sources = {
formatting.stylua, -- tambahkan di bawah sini
diagnostics.flake8, -- tambahkan di bawah sini
},
}
return m

View file

@ -1,4 +0,0 @@
return {
--- masukan plugin tambahan disini
{ "folke/trouble.nvim", enabled = false }, -- ini untuk disable plugin
}

View file

@ -1,17 +0,0 @@
-- untuk referesi support language kunjungi link dibawah
-- https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
local m = {
lspreg = {
"bashls",
"yamlls",
"jdtls",
"intelephense",
"marksman",
"csharp_ls",
"clangd",
"dartls",
"kotlin_language_server",
-- tambahkan di bawah sini setelah melakukan :masoninstall
},
}
return m

53
lua/gemini/init.lua Normal file
View file

@ -0,0 +1,53 @@
local M = {}
M.last_popup_win = nil
M.last_popup_buf = nil
function M.ask_gemini()
-- Ambil path file buffer aktif
--[[ local buf_path = vim.api.nvim_buf_get_name(0)
if buf_path ~= "" then
local dir = vim.fn.fnamemodify(buf_path, ":h")
vim.api.nvim_set_current_dir(dir)
end ]]
vim.ui.input({ prompt = "Prompt ke Gemini: " }, function(prompt)
if not prompt or prompt == "" then
vim.notify("Prompt kosong", vim.log.levels.WARN)
return
end
M.show_popup("Loading...")
vim.schedule(function()
local output = vim.fn.system('gemini --prompt "' .. prompt .. '"')
M.show_popup(output)
end)
end)
end
function M.show_popup(output)
if M.last_popup_win and vim.api.nvim_win_is_valid(M.last_popup_win) then
vim.api.nvim_win_close(M.last_popup_win, true)
end
if M.last_popup_buf and vim.api.nvim_buf_is_valid(M.last_popup_buf) then
vim.api.nvim_buf_delete(M.last_popup_buf, { force = true })
end
local buf = vim.api.nvim_create_buf(false, true)
vim.api.nvim_buf_set_lines(buf, 0, -1, false, vim.split(output or "", "\n"))
local width = math.floor(vim.o.columns * 0.6)
local height = math.floor(vim.o.lines * 0.8)
local win = vim.api.nvim_open_win(buf, true, {
relative = "editor",
width = width,
height = height,
row = math.floor((vim.o.lines - height) / 2),
col = math.floor((vim.o.columns - width) / 2),
style = "minimal",
border = "rounded",
})
M.last_popup_win = win
M.last_popup_buf = buf
end
return M

View file

@ -0,0 +1,91 @@
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
vim.opt.number = false
local icons = require("pcode.user.icons").ui
-- Make sure to setup `mapleader` and `maplocalleader` before
-- loading lazy.nvim so that mappings are correct.
-- This is also a good place to setup other settings (vim.opt)
vim.g.mapleader = " "
vim.g.maplocalleader = "\\"
-- initialisasi plugins
local importdata = {
{ import = "pcode.plugins" },
}
-- load theme
local theme = pcode.themes or {}
for key, _ in pairs(theme) do
table.insert(importdata, { import = "pcode.plugins.theme." .. key })
end
-- load extras plugins
local extras = pcode.extras or {}
for key, value in pairs(extras) do
if value then
table.insert(importdata, { import = "pcode.plugins.extras." .. key })
end
end
-- load language config
local lang = pcode.lang or {}
for key, value in pairs(lang) do
if value then
table.insert(importdata, { import = "pcode.plugins.lang." .. key })
end
end
-- load transparant config
local transparant = pcode.transparent or false
if transparant then
table.insert(importdata, { import = "pcode.plugins.extras.transparent" })
end
-- add overide path
table.insert(importdata, { import = "pcode.user.custom" })
-- Setup lazy.nvim
require("lazy").setup({
spec = importdata,
ui = {
backdrop = 100, -- Menyeting backdrop UI
border = "rounded", -- Mengatur border UI ke rounded
browser = "chrome", -- Menggunakan Chrome sebagai browser default
throttle = 40, -- Menyeting throttle
custom_keys = {
["<localleader>l"] = false, -- Menonaktifkan kunci lokal leader l
},
icons = {
ft = icons.ft,
lazy = icons.Bell .. " ",
loaded = icons.CheckCircle,
not_loaded = icons.not_loaded,
},
},
change_detection = { enabled = false, notify = false }, -- Nonaktifkan deteksi perubahan
-- automatically check for plugin updates
checker = { enabled = true },
performance = {
rtp = {
-- disable some rtp plugins
disabled_plugins = {
"gzip",
"matchit",
"matchparen",
"netrwPlugin",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
},
},
},
})

9
lua/pcode/core/init.lua Normal file
View file

@ -0,0 +1,9 @@
_G.pcode = _G.pcode or {}
require("pcode.user.default")
require("pcode.config.lazy_lib")
require("pcode.user.colorscheme")
require("pcode.core.neovide")
vim.keymap.set({ "n", "v", "x" }, "<C-i>", function()
require("gemini").ask_gemini()
end, { noremap = true, silent = true, desc = "Prompt Gemini CLI" })

View file

@ -0,0 +1,71 @@
if vim.g.neovide then
local opts = { noremap = true, silent = true }
vim.g.neovide_input_use_logo = 1 -- enable use of the logo (cmd) key
vim.keymap.set("n", "<c-s>", ":w<CR>", opts) -- Save
vim.keymap.set("v", "<c-c>", '"+y', opts) -- Copy
vim.keymap.set("n", "<c-v>", '"+P', opts) -- Paste normal mode
vim.keymap.set("v", "<c-v>", '"+P', opts) -- Paste visual mode
vim.keymap.set("x", "<c-v>", '"+P', opts) -- Paste visual mode
vim.keymap.set("c", "<sc-v>", "<C-R>+", { noremap = true }) -- Paste command mode
vim.keymap.set("i", "<c-v>", '<ESC>l"+Pli', opts) -- Paste insert mode
vim.keymap.set(
"n",
"<c-/>",
"<esc><cmd>lua require('Comment.api').toggle.linewise.current()<cr>$i<Right><leader>",
opts
)
vim.keymap.set(
"i",
"<c-/>",
"<esc><cmd>lua require('Comment.api').toggle.linewise.current()<cr>$i<Right><leader>",
opts
)
vim.keymap.set("v", "<c-/>", "<esc><cmd>lua require('Comment.api').toggle.linewise(vim.fn.visualmode())<cr>", opts)
vim.o.guifont = "Hasklug_Nerd_Font:h15"
vim.g.neovide_padding_top = 0
vim.g.neovide_padding_bottom = 1
vim.g.neovide_padding_right = 1
vim.g.neovide_padding_left = 1
-- config for transparent
vim.g.neovide_transparency = 1
vim.g.neovide_hide_mouse_when_typing = false
vim.g.neovide_underline_automatic_scaling = false
vim.g.neovide_refresh_rate_idle = 5
vim.g.neovide_no_idle = true
vim.g.neovide_remember_window_size = true
vim.g.neovide_touch_drag_timeout = 0.17
vim.g.neovide_show_border = false
vim.g.neovide_theme = "auto"
vim.g.neovide_confirm_quit = true
vim.g.neovide_remember_window_size = true
vim.g.neovide_cursor_smooth_blink = true
-- animation config
--vim.g.neovide_scroll_animation_length = 0.3
--vim.g.neovide_cursor_animation_length = 0.13
vim.g.neovide_cursor_trail_size = 0.8
vim.g.neovide_cursor_antialiasing = true
vim.g.neovide_cursor_animate_in_insert_mode = true
vim.g.neovide_cursor_vfx_mode = "torpedo"
vim.opt.linespace = 0
vim.g.neovide_scale_factor = 1
vim.opt.cmdheight = 0
vim.opt.spell = false
vim.g.neovide_window_blurred = true
vim.g.neovide_floating_blur_amount_x = 2.0
vim.g.neovide_floating_blur_amount_y = 2.0
vim.g.neovide_floating_shadow = false
vim.g.neovide_floating_z_height = 10
vim.g.neovide_light_angle_degrees = 45
vim.g.neovide_light_radius = 5
end
-- -- Allow clipboard copy paste in neovim
-- vim.g.neovide_input_use_logo = 1
-- vim.api.nvim_set_keymap("", "<c-v>", "+p<CR>", { noremap = true, silent = true })
-- vim.api.nvim_set_keymap("!", "<c-v>", "<C-R>+", { noremap = true, silent = true })
-- vim.api.nvim_set_keymap("t", "<c-v>", "<C-R>+", { noremap = true, silent = true })
-- vim.api.nvim_set_keymap("v", "<c-v>", "<C-R>+", { noremap = true, silent = true })

View file

@ -0,0 +1,55 @@
_G.idxOf = function(array, value)
for i, v in ipairs(array) do
if v == value then
return i
end
end
return nil
end
_G.LAZYGIT_TOGGLE = function()
local ok = pcall(require, "toggleterm")
if not ok then
require("notify")("toggleterm not found!", "error")
return
end
local Terminal = require("toggleterm.terminal").Terminal
local lazygit = Terminal:new({ cmd = "lazygit", hidden = true })
lazygit:toggle()
end
_G.substring = function(text, key)
local index, _ = string.find(text, key)
if index then
return true
else
return false
end
end
_G.all_trim = function(s)
return s:match("^%s*(.-)%s*$")
end
_G.current_theme = function()
if pcode.themes then
local theme = ""
for _, value in pairs(pcode.themes or {}) do
theme = value
end
return all_trim(theme)
end
return ""
end
local function safeRequire(module)
local ok, result = pcall(require, module)
if ok then
return result
end
end
safeRequire("pcode.user.options")
safeRequire("pcode.user.autocmd")
safeRequire("pcode.user.keymaps")
return {}

View file

@ -0,0 +1,95 @@
return {
{
"williamboman/mason-lspconfig.nvim",
event = { "CmdlineEnter", "BufReadPre", "BufNewFile", "BufRead" },
dependencies = {
{ "pojokcodeid/auto-lsp.nvim", lazy = true },
{
"neovim/nvim-lspconfig",
lazy = true,
cmd = {
"LspInfo",
"LspInstall",
"LspUninstall",
},
config = function()
require("lspconfig.ui.windows").default_options.border = "rounded"
end,
},
{
"williamboman/mason.nvim",
lazy = true,
build = ":MasonUpdate",
opts_extend = { "ensure_installed" },
cmd = {
"Mason",
"MasonInstall",
"MasonUninstall",
"MasonUninstallAll",
"MasonLog",
},
opts = function(_, opts)
local icons = require("pcode.user.icons").ui
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "stylua" })
opts.ui = {
-- border = "none",
border = icons.Border,
icons = {
package_pending = icons.Pending,
package_installed = icons.CheckCircle,
package_uninstalled = icons.BlankCircle,
},
keymaps = {
toggle_server_expand = "<CR>",
install_server = "i",
update_server = "u",
check_server_version = "c",
update_all_servers = "U",
check_outdated_servers = "C",
uninstall_server = "X",
},
}
opts.log_level = vim.log.levels.INFO
opts.max_concurrent_installers = 4
return opts
end,
config = function(_, opts)
require("mason").setup(opts)
local mr = require("mason-registry")
mr:on("package:install:success", function()
vim.defer_fn(function()
-- trigger FileType event to possibly load this newly installed LSP server
require("lazy.core.handler.event").trigger({
event = "FileType",
buf = vim.api.nvim_get_current_buf(),
})
end, 100)
end)
mr.refresh(function()
for _, tool in ipairs(opts.ensure_installed) do
local p = mr.get_package(tool)
if not p:is_installed() then
p:install()
end
end
end)
end,
},
},
opts = function(_, opts)
opts.skip_config = opts.skip_config or {}
opts.ensure_installed = opts.ensure_installed or {}
opts.automatic_installation = true
vim.list_extend(opts.ensure_installed, { "lua_ls" })
opts.format_on_save = true -- if use none-ls set true
opts.virtual_text = true
opts.timeout_ms = 5000
return opts
end,
config = function(_, opts)
require("auto-lsp").setup(opts)
end,
},
}

View file

@ -0,0 +1,50 @@
return {
{ "nvim-lua/plenary.nvim", event = "VeryLazy" },
{
"nvim-treesitter/nvim-treesitter",
event = { "BufRead", "VeryLazy" },
version = false,
build = ":TSUpdate",
lazy = true,
cmd = {
"TSInstall",
-- "TSInstallInfo",
"TSInstallSync",
"TSUpdate",
"TSUpdateSync",
"TSUninstall",
"TSUninstallInfo",
"TSInstallFromGrammar",
},
opts = function()
return {
highlight = { enable = true },
indent = { enable = true },
ensure_installed = { "lua", "luadoc", "printf", "vim", "vimdoc" },
incremental_selection = {
enable = true,
},
autopairs = {
enable = true,
},
}
end,
config = function(_, opts)
if type(opts.ensure_installed) == "table" then
---@type table<string, boolean>
local added = {}
opts.ensure_installed = vim.tbl_filter(function(lang)
if added[lang] then
return false
end
added[lang] = true
return true
end, opts.ensure_installed)
end
require("nvim-treesitter.configs").setup(opts)
vim.api.nvim_create_user_command("TSInstallInfo", function()
vim.cmd("Telescope treesitter_info")
end, {})
end,
},
}

View file

@ -0,0 +1,35 @@
return {
"windwp/nvim-autopairs",
lazy = true,
dependencies = "hrsh7th/nvim-cmp",
event = "InsertEnter",
opts = {
check_ts = true,
ts_config = {
lua = { "string", "source" },
javascript = { "string", "template_string" },
java = false,
},
disable_filetype = { "TelescopePrompt", "spectre_panel" },
fast_wrap = {
map = "<M-e>",
chars = { "{", "[", "(", '"', "'", "`" },
pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""),
offset = 0, -- Offset from pattern match
end_key = "$",
keys = "qwertyuiopzxcvbnmasdfghjkl",
check_comma = true,
highlight = "PmenuSel",
highlight_grey = "LineNr",
},
},
config = function(_, opts)
require("nvim-autopairs").setup(opts)
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
local cmp_status_ok, cmp = pcall(require, "cmp")
if not cmp_status_ok then
return
end
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done({ map_char = { tex = "" } }))
end,
}

View file

@ -0,0 +1,6 @@
return {
"windwp/nvim-ts-autotag",
lazy = true,
event = { "BufRead", "InsertEnter" },
opts = {},
}

View file

@ -0,0 +1,82 @@
local M = {
"goolord/alpha-nvim",
event = "VimEnter",
}
M.opts = {
dash_model = {
[[ _ __ __ ]],
[[ ___ ___ (____ / /__ _______ ___/ ___ ]],
[[ / _ / _ \ / / _ \/ '_/ / __/ _ / _ / -_) ]],
[[ / .__\_____/ /\___/_/\_\ \__/\___\_,_/\__/ ]],
[[ /_/ |___/ ]],
},
}
function M.config(_, opts)
local alpha = require("alpha")
local startify = require("alpha.themes.startify")
startify.section.header.val = pcode.dashboard or opts.dash_model
startify.section.top_buttons.val = {
startify.button("F", "󰈞 Find file", ":Telescope find_files <CR>"),
startify.button("e", " New file", ":ene <BAR> startinsert <CR>"),
startify.button("p", "󰉋 Find project", ":Telescope projects <CR>"),
startify.button("r", "󰦛 Recently used files", ":Telescope oldfiles <CR>"),
startify.button("t", "󰊄 Find text", ":Telescope live_grep <CR>"),
startify.button("c", " Configuration", ":e $MYVIMRC <CR>"),
startify.button("l", "󰒲 Lazy", ":Lazy<CR>"),
startify.button("q", "󰅚 Quit", ":qa<CR>"),
}
-- disable MRU
startify.section.mru.val = { { type = "padding", val = 4 } }
-- disable MRU cwd
startify.section.mru_cwd.val = { { type = "padding", val = 0 } }
-- disable nvim_web_devicons
startify.nvim_web_devicons.enabled = false
startify.section.bottom_buttons.val = {}
vim.api.nvim_create_autocmd("User", {
pattern = "LazyVimStarted",
desc = "Add Alpha dashboard footer",
once = true,
callback = function()
local stats = require("lazy").stats()
local ms = math.floor(stats.startuptime * 100 + 0.5) / 100
-- stylua: ignore
startify.section.footer.val = {
-- {
-- type = "text",
-- val = {"───────────────────────────────────────────"},
-- },
{
type = "text",
val = {
"⚡ Neovim loaded " .. stats.loaded .. "/" .. stats.count .. " plugins  in " .. ms .. "ms",
},
},
-- {
-- type = "text",
-- val = {"───────────────────────────────────────────"},
-- },
}
pcall(vim.cmd.AlphaRedraw)
end,
})
vim.api.nvim_create_autocmd({ "User" }, {
pattern = { "AlphaReady" },
callback = function()
vim.cmd([[
set laststatus=0 | autocmd BufUnload <buffer> set laststatus=3
]])
end,
})
-- ignore filetypes in MRU
local default_mru_ignore = {}
startify.mru_opts.ignore = function(path, ext)
return (string.find(path, "COMMIT_EDITMSG")) or (vim.tbl_contains(default_mru_ignore, ext))
end
alpha.setup(startify.config)
end
return M

View file

@ -0,0 +1,34 @@
return {
"akinsho/bufferline.nvim",
branch = "main",
event = { "BufRead", "InsertEnter", "BufNewFile" },
dependencies = "pojokcodeid/auto-bufferline.nvim",
config = function()
vim.opt.termguicolors = true
local config = require("auto-bufferline").config()
require("bufferline").setup(config)
end,
keys = {
{ "<leader>b", "", desc = "  Buffers", mode = "n" },
{
"<leader>bb",
function()
require("telescope.builtin").buffers(require("telescope.themes").get_dropdown({ previewer = false }))
end,
desc = "All Buffer",
mode = "n",
},
{
"<leader>bc",
function()
require("auto-bufferline.configs.utils").bufremove()
end,
desc = "Close current buffer",
mode = "n",
},
{ "<leader>bd", "<cmd>BufferLineCloseLeft<cr>", desc = "Close Buffer Left", mode = "n" },
{ "<leader>bD", "<cmd>BufferLineCloseRight<cr>", desc = "Close Buffer Right", mode = "n" },
{ "<leader>ba", "<cmd>BufferLineCloseOthers<cr>", desc = "Close Buffer Other", mode = "n" },
{ "<leader>bA", "<cmd>BufferLineCloseOthers<cr><cmd>bd!<cr>", desc = "Close Buffer All", mode = "n" },
},
}

151
lua/pcode/plugins/cmp.lua Normal file
View file

@ -0,0 +1,151 @@
return {
{
"L3MON4D3/LuaSnip",
event = "InsertEnter",
version = "v2.*",
-- build = "make install_jsregexp",
opts = {
history = true,
delete_check_events = "TextChanged",
},
-- stylua: ignore
keys = {
{ "<tab>", function() require("luasnip").jump(1) end, mode = "s" },
{ "<s-tab>", function() require("luasnip").jump(-1) end, mode = { "i", "s" } },
},
},
{
"hrsh7th/nvim-cmp",
version = false, -- last release is way too old
event = "InsertEnter",
dependencies = {
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"saadparwaiz1/cmp_luasnip",
"hrsh7th/cmp-nvim-lua",
"xzbdmw/colorful-menu.nvim",
"lukas-reineke/cmp-rg",
},
opts = function()
local cmp = require("cmp")
local luasnip = require("luasnip")
local check_backspace = function()
local col = vim.fn.col(".") - 1
return col == 0 or vim.fn.getline("."):sub(col, col):match("%s")
end
return {
completion = {
completeopt = "menu,menuone,noinsert",
},
snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert({
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.abort(),
["<CR>"] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expandable() then
luasnip.expand()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif check_backspace() then
fallback()
else
fallback()
end
end, {
"i",
"s",
}),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, {
"i",
"s",
}),
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" },
{ name = "luasnip" },
{ name = "buffer" },
{ name = "path" },
{ name = "nvim_lua" },
{ name = "rg" },
}),
formatting = {
fields = { "kind", "abbr", "menu" },
format = function(entry, vim_item)
vim_item.menu = vim.api.nvim_get_mode().mode == "c" and "" or all_trim(vim_item.kind)
vim_item.kind = string.format("%s", all_trim(require("pcode.user.icons")["kind2"][vim_item.kind]))
local original_notify = vim.notify
vim.notify = function(msg, level, opts)
if type(msg) == "string" and msg:match("has new line character, please open an issue") then
return
end
original_notify(msg, level, opts)
end
local ok, highlights_info = pcall(require("colorful-menu").cmp_highlights, entry)
if ok and highlights_info ~= nil then
vim_item.abbr_hl_group = highlights_info.highlights
-- ambil nama group hilightnya saja
-- eg. "@parameter"
local var_hilight = highlights_info.highlights[1][1]
local id = vim.fn.hlID(var_hilight)
local var_out = "@tag"
-- cek apakah hilight terdefinisi
if id ~= 0 then
var_out = var_hilight
else
var_out = var_hilight:match("([^%.]+)")
end
vim_item.menu_hl_group = var_out
-- vim.notify(var_out)
else
vim_item.abbr_hl_group = "CmpItemAbbr"
vim_item.menu_hl_group = "CmpItemAbbr"
end
return vim_item
end,
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
experimental = {
ghost_text = false,
native_menu = false,
},
}
end,
},
{
"rafamadriz/friendly-snippets",
event = "InsertEnter",
lazy = true,
config = function()
require("luasnip.loaders.from_vscode").lazy_load()
require("pcode.user.snippets")
end,
},
}

View file

@ -0,0 +1,141 @@
return {
{
"folke/noice.nvim",
lazy = true,
enabled = true,
dependencies = {
{ "MunifTanjim/nui.nvim" },
},
event = "CmdlineEnter",
opts = {
messages = {
enabled = false,
},
notify = {
enabled = false,
},
lsp = {
progress = {
enabled = false,
},
hover = {
enabled = false,
},
signature = {
enabled = false,
},
},
presets = {
-- Preset ini menyesuaikan bentuk cursor pada mode commond
command_bar_cursor = {
enabled = true,
cursor_shape = "ver30", -- "ver" menandakan bar vertikal, 30 adalah tinggi dalam persen
},
},
},
keys = {
{
"<S-Enter>",
function()
require("noice").redirect(vim.fn.getcmdline())
end,
mode = "c",
desc = "Redirect Cmdline",
},
{
"<leader>snl",
function()
require("noice").cmd("last")
end,
desc = "Noice Last Message",
},
{
"<leader>snh",
function()
require("noice").cmd("history")
end,
desc = "Noice History",
},
{
"<leader>sna",
function()
require("noice").cmd("all")
end,
desc = "Noice All",
},
{
"<c-f>",
function()
if not require("noice.lsp").scroll(4) then
return "<c-f>"
end
end,
silent = true,
expr = true,
desc = "Scroll forward",
mode = { "i", "n", "s" },
},
{
"<c-b>",
function()
if not require("noice.lsp").scroll(-4) then
return "<c-b>"
end
end,
silent = true,
expr = true,
desc = "Scroll backward",
mode = { "i", "n", "s" },
},
},
},
{
"hrsh7th/cmp-cmdline",
-- event = "VeryLazy",
event = "CmdlineEnter",
config = function()
local cmp = require("cmp")
local mapping = {
["<CR>"] = cmp.mapping.confirm({ select = true }),
["<Up>"] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "c" }),
["<S-Tab>"] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "c" }),
["<Down>"] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "c" }),
["<Tab>"] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "c" }),
}
-- Use buffer source for `/`.
cmp.setup.cmdline("/", {
preselect = "none",
completion = {
completeopt = "menu,preview,menuone,noselect",
},
mapping = mapping,
sources = {
{ name = "buffer" },
},
experimental = {
ghost_text = true,
native_menu = false,
},
})
-- Use cmdline & path source for ':'.
cmp.setup.cmdline(":", {
preselect = "none",
completion = {
completeopt = "menu,preview,menuone,noselect",
},
mapping = mapping,
sources = cmp.config.sources({
{ name = "path" },
}, {
{ name = "cmdline" },
}),
experimental = {
ghost_text = true,
native_menu = false,
},
})
end,
},
}

View file

@ -0,0 +1,64 @@
--typescript = "deno run",
-- cpp="gcc $fileName -lstdc++ -o $fileNameWithoutExt && $fileNameWithoutExt"
local pyrun = "python -u"
if vim.fn.has("win32") == 0 then
pyrun = "python3 -u"
end
local rfile = {
java = "cd $dir && javac $fileName && java $fileNameWithoutExt",
python = pyrun,
typescript = "ts-node $dir/$fileName",
rust = "cd $dir && rustc $fileName && $dir/$fileNameWithoutExt",
cpp = "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir/$fileNameWithoutExt",
scss = "sass $dir/$fileName $dir/$fileNameWithoutExt.css",
javascript = 'node "$dir/$fileName"',
-- go = "go run .",
go = "go run $fileName",
}
local runProject = {}
local cwd = vim.fn.getcwd()
local go_mod_path = cwd .. "/go.mod"
if vim.fn.filereadable(go_mod_path) ~= 0 then
runProject[cwd] = {
name = "Go Project (cwd)",
command = "go run .",
}
end
return {
"CRAG666/code_runner.nvim",
lazy = true,
cmd = { "RunCode", "RunFile", "RunProject", "RunClose" },
opts = {
filetype = rfile,
project = runProject,
mode = "float",
focus = true,
startinsert = true,
term = {
position = "bot",
size = 50,
},
float = {
close_key = "<ESC>",
border = "rounded",
height = 0.8,
width = 0.8,
x = 0.5,
y = 0.5,
border_hl = "FloatBorder",
float_hl = "Normal",
blend = 0,
},
},
config = function(_, opts)
require("code_runner").setup(opts)
end,
keys = {
{ "<leader>r", "", desc = "  Run", mode = "n" },
{ "<leader>rr", "<cmd>RunCode<CR>", desc = "Run Code", mode = "n" },
{ "<leader>rf", "<cmd>RunFile<CR>", desc = "Run File", mode = "n" },
{ "<leader>rp", "<cmd>RunProject<CR>", desc = "Run Project", mode = "n" },
},
}

View file

@ -0,0 +1,29 @@
return {
"numToStr/Comment.nvim",
event = "VeryLazy",
dependencies = {
"JoosepAlviste/nvim-ts-context-commentstring",
},
opts = function()
return {
pre_hook = require("ts_context_commentstring.integrations.comment_nvim").create_pre_hook(),
}
end,
keys = {
{
"<leader>/",
"<Plug>(comment_toggle_linewise_current)",
desc = "󰆈 Coment line",
mode = "n",
},
{
"<leader>/",
"<Plug>(comment_toggle_linewise_visual)",
desc = "󰆈 Coment line",
mode = "v",
},
},
config = function(_, opts)
require("Comment").setup(opts)
end,
}

View file

@ -0,0 +1,43 @@
return {
"pojokcodeid/auto-conform.nvim",
dependencies = {
"williamboman/mason.nvim",
"stevearc/conform.nvim",
},
event = "BufRead",
opts = function(_, opts)
opts.formatters = opts.formatters or {}
opts.formatters_by_ft = opts.formatters_by_ft or {}
opts.ensure_installed = opts.ensure_installed or {}
-- vim.list_extend(opts.ensure_installed, { "stylua" })
opts.lang_maps = opts.lang_maps or {}
opts.name_maps = opts.name_maps or {}
opts.add_new = opts.add_new or {}
opts.ignore = opts.ignore or {}
opts.format_on_save = opts.format_on_save or true
opts.format_timeout_ms = opts.format_timeout_ms or 5000
end,
config = function(_, opts)
require("auto-conform").setup(opts)
-- other conform config
local conform = require("conform")
if opts.format_on_save then
conform.setup({
format_on_save = {
lsp_fallback = true,
timeout_ms = opts.format_timeout_ms or 5000,
},
})
end
vim.keymap.set({ "n", "v" }, "<leader>lF", function()
conform.format({
lsp_fallback = true,
async = false,
timeout_ms = opts.format_timeout_ms or 5000,
})
end, { desc = "Format file or range (in visual mode)" })
end,
keys = {
{ "<leader>l", "", desc = "󰘦 Lsp" },
},
}

View file

@ -0,0 +1,34 @@
return {
"stevearc/dressing.nvim",
lazy = true,
init = function()
---@diagnostic disable-next-line: duplicate-set-field
vim.ui.select = function(...)
require("lazy").load({ plugins = { "dressing.nvim" } })
return vim.ui.select(...)
end
---@diagnostic disable-next-line: duplicate-set-field
--[[ vim.ui.input = function(...)
require("lazy").load({ plugins = { "dressing.nvim" } })
return vim.ui.input(...)
end ]]
end,
opts = {
input = {
title_pos = "center",
relative = "editor",
default_prompt = "",
win_options = { winhighlight = "Normal:Normal,NormalNC:Normal" },
prefer_width = 30,
max_width = { 140, 0.9 },
min_width = { 50, 0.2 },
},
select = {
backend = { "telescope", "builtin" },
builtin = { win_options = { winhighlight = "Normal:Normal,NormalNC:Normal" } },
},
},
config = function(_, opts)
require("dressing").setup(opts)
end,
}

View file

@ -0,0 +1,49 @@
return {
"okuuva/auto-save.nvim",
version = "^1.0.0", -- see https://devhints.io/semver, alternatively use '*' to use the latest tagged release
cmd = "ASToggle", -- optional for lazy loading on command
event = { "InsertLeave", "TextChanged" }, -- optional for lazy loading on trigger events
opts = {
enabled = true, -- start auto-save when the plugin is loaded (i.e. when your package manager loads it)
trigger_events = { -- See :h events
immediate_save = { "BufLeave", "FocusLost" }, -- vim events that trigger an immediate save
defer_save = { "InsertLeave", "TextChanged" }, -- vim events that trigger a deferred save (saves after `debounce_delay`)
cancel_deferred_save = { "InsertEnter" }, -- vim events that cancel a pending deferred save
},
-- function that takes the buffer handle and determines whether to save the current buffer or not
-- return true: if buffer is ok to be saved
-- return false: if it's not ok to be saved
-- if set to `nil` then no specific condition is applied
condition = nil,
write_all_buffers = false, -- write all buffers when the current one meets `condition`
noautocmd = false, -- do not execute autocmds when saving
lockmarks = false, -- lock marks when saving, see `:h lockmarks` for more details
debounce_delay = 1500, -- delay after which a pending save is executed
-- log debug messages to 'auto-save.log' file in neovim cache directory, set to `true` to enable
debug = false,
},
config = function(_, opts)
require("auto-save").setup(opts)
local group = vim.api.nvim_create_augroup("autosave", {})
vim.api.nvim_create_autocmd("User", {
pattern = "AutoSaveWritePost",
group = group,
callback = function(opts)
local ftype = vim.bo.filetype
if opts.data.saved_buffer ~= nil and ftype ~= "TelescopePrompt" and not substring(tostring(ftype), "dap") then
local filename = vim.api.nvim_buf_get_name(opts.data.saved_buffer)
local is_ok = pcall(require, "notify")
if is_ok then
require("notify")("AutoSave: saved at " .. vim.fn.strftime("%H:%M:%S"))
else
print("AutoSave: saved " .. filename .. " at " .. vim.fn.strftime("%H:%M:%S"))
end
end
end,
})
end,
keys = {
{ "<leader>n", ":ASToggle<CR>", desc = "󰨚 Toggle auto-save" },
},
}

View file

@ -0,0 +1,8 @@
return {
"LunarVim/bigfile.nvim",
lazy = true,
event = "BufReadPre",
opts = {
file_size = 2,
},
}

View file

@ -0,0 +1,73 @@
return {
"pojokcodeid/cheatsheet-nvim",
event = "VeryLazy",
keys = {
{ "<F1>", "<cmd>KeymapsPopup<cr>", desc = "Keymaps Popup" },
},
cmd = { "KeymapsPopup" },
opts = {
["LSP"] = {
{ "LSP Code Action", "n", "<leader>la" },
{ "LSP Code Format", "n", "<leader>lf" },
{ "LSP Information", "n", "<leader>li" },
{ "Mason Information", "n", "<leader>lI" },
{ "LSP Next Diagnostic", "n", "<leader>lj" },
{ "LSP Previous Diagnostic", "n", "<leader>lk" },
{ "LSP Quickfix", "n", "<leader<lq" },
{ "LSP Rename", "n", "<leader>lr" },
{ "LSP Signature Help", "n", "<leader>ls" },
{ "LSP Format On Range", "v", "<leader>lF" },
},
["Cmp"] = {
{ "Scroll Next Documentation", "i", "CTRL + f" },
{ "Scroll Previous Documentation", "i", "CTRL + b" },
{ "Mapping Complete", "i", "CTRL + space" },
{ "Abort Completion", "i", "CTRL + e" },
{ "Accept Completion", "i", "" },
{ "Next Autocompletion", "i", "TAB" },
{ "Previous Autocompletion", "i", "SHIFT + TAB" },
},
["Terminal"] = {
{ "Terminal Float", "n", "<leader>tf" },
{ "Terminal Horizontal", "n", "<leader>th" },
{ "Terminal new tab", "n", "<leader>ts" },
{ "Terminal Vertical", "n", "<leader>tv" },
{ "Terminal Close", "n", "<leader>tx" },
},
["Comment"] = {
{ "Comment line toggle", "n/v", "gcc or CTRL + /" },
{ "Comment block toggle", "n/v", "gbc or CTRL + /" },
{ "Comment visual selection", "v", "gc" },
{ "Comment visual selection using block delimiters", "v", "gb" },
{ "Comment out text object line wise", "v", "gc<motion>" },
{ "Comment out text object block wise", "v", "gb<motion>" },
{ "Add comment on the line above", "n", "gcO" },
{ "Add comment on the line below", "n", "gco" },
{ "Add comment at the end of line", "n", "gcA" },
},
["Bufferline"] = {
{ "Move Active Buffer Left", "n", "SHIFT + h/SHIFT + Left" },
{ "Move Active Buffer Right", "n", "SHIFT + l/SHIFT + Right" },
{ "Reorder Bufferline", "n", "SHIFT + PageUp/PageDown" },
{ "Close Current Buffer", "n", "SHIFT + t" },
},
["Window"] = {
{ "Resize Window", "n", "CTRL + Left/Right/Up/Down" },
{ "Navigate Window", "n", "CTRL + h/l" },
},
["Text-Manipulation"] = {
{ "Select Multiple Cursor Vertical", "n/i", "SHIFT + ALT + Up/Down" },
{ "Select text", "n", "CTRL + d" },
{ "Select Multiple Cursor", "i/n", "ALT + Left Click Mouse" },
{ "Duplicate Row", "i/n/v", "SHIFT + ALT + Up/Down" },
{ "Move Row", "i/n/v", "ALT + Up/Down" },
},
["Ai"] = {
{ "Approve AI Sugention", "i", "CTRL + g" },
{ "Change AI Option", "i", "CTRL + Up/Down" },
{ "Clear AI Sugention", "i", "CTRL + x" },
},
},
config = true,
}

View file

@ -0,0 +1,33 @@
return {
"exafunction/codeium.vim",
enabled = true,
-- for fix notwork new version
-- https://github.com/exafunction/codeium.vim/issues/376#issuecomment-2159643405
-- version = "1.8.37",
-- event = "bufwinenter",
-- event = "bufenter",
-- event = "insertenter",
event = { "VeryLazy", "bufreadpre", "bufnewfile", "bufread" },
build = ":Codeium Auth",
cmd = { "CodeiumChat" },
config = function()
vim.g.codeium_disable_bindings = 1
-- Change '<C-g>' here to any keycode you like.
vim.keymap.set("i", "<C-g>", function()
return vim.fn["codeium#Accept"]()
end, { expr = true, silent = true })
vim.keymap.set("i", "<c-Up>", function()
return vim.fn["codeium#CycleCompletions"](1)
end, { expr = true, silent = true })
vim.keymap.set("i", "<c-Down>", function()
return vim.fn["codeium#CycleCompletions"](-1)
end, { expr = true, silent = true })
vim.keymap.set("i", "<c-x>", function()
return vim.fn["codeium#Clear"]()
end, { expr = true, silent = true })
end,
keys = {
{ "<leader>c", ":CodeiumChat<cr>", desc = "󰭹 codeium chat", mode = "n" },
},
}

View file

@ -0,0 +1,38 @@
return {
-- codeium cmp source
{
"nvim-cmp",
event = "BufReadPre",
dependencies = {
-- codeium
{
"Exafunction/windsurf.nvim",
cmd = "Codeium",
enabled = true,
opts = {
enable_chat = true,
enable_cmp_source = true,
virtual_text = {
enabled = true,
key_bindings = {
accept = "<c-g>",
next = "<c-Down>",
prev = "<c-Up>",
},
},
},
config = function(_, opts)
require("codeium").setup(opts)
end,
},
},
--@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, 1, {
name = "codeium",
group_index = 1,
priority = 100,
})
end,
},
}

View file

@ -0,0 +1,25 @@
return {
"NvChad/nvim-colorizer.lua",
lazy = true,
event = { "BufRead", "InsertEnter", "BufNewFile" },
opts = {
user_default_options = {
RGB = true, -- #RGB hex codes
RRGGBB = true, -- #RRGGBB hex codes
names = true, -- "Name" codes like Blue
RRGGBBAA = true, -- #RRGGBBAA hex codes
rgb_fn = true, -- CSS rgb() and rgba() functions
hsl_fn = true, -- CSS hsl() and hsla() functions
css = true, -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB
css_fn = true, -- Enable all CSS *functions*: rgb_fn, hsl_fn
-- Available modes: foreground, background
mode = "background", -- Set the display mode.
tailwind = true,
},
filetypes = {
"*", -- Highlight all files, but customize some others.
css = { rgb_fn = true }, -- Enable parsing rgb(...) functions in css.
html = { names = false }, -- Disable parsing "names" like Blue or Gray
},
},
}

View file

@ -0,0 +1,62 @@
return {
{
"rcarriga/nvim-dap-ui",
lazy = true,
event = "BufRead",
dependencies = {
{ "mfussenegger/nvim-dap", lazy = true },
{ "nvim-neotest/nvim-nio", lazy = true },
{
"theHamsta/nvim-dap-virtual-text",
opts = {
virt_text_win_col = 80,
},
},
},
config = function()
require("pcode.user.dapui")
end,
keys = {
{ "<leader>d", "", desc = "  Debug" },
{ "<leader>dt", "<cmd>lua require'dap'.toggle_breakpoint()<cr>", desc = "Toggle Breakpoint" },
{ "<leader>db", "<cmd>lua require'dap'.step_back()<cr>", desc = "Step Back" },
{ "<leader>dc", "<cmd>lua require'dap'.continue()<cr>", desc = "Continue" },
{ "<leader>dC", "<cmd>lua require'dap'.run_to_cursor()<cr>", desc = "Run To Cursor" },
{ "<leader>dd", "<cmd>lua require'dap'.disconnect()<cr>", desc = "Disconnect" },
{ "<leader>dg", "<cmd>lua require'dap'.session()<cr>", desc = "Get Session" },
{ "<leader>di", "<cmd>lua require'dap'.step_into()<cr>", desc = "Step Into" },
{ "<leader>do", "<cmd>lua require'dap'.step_over()<cr>", desc = "Step Over" },
{ "<leader>du", "<cmd>lua require'dap'.step_out()<cr>", desc = "Step Out" },
{ "<leader>dp", "<cmd>lua require'dap'.pause()<cr>", desc = "Pause" },
{ "<leader>dr", "<cmd>lua require'dap'.repl.toggle()<cr>", desc = "Toggle Repl" },
{ "<leader>ds", "<cmd>lua require'dap'.continue()<cr>", desc = "Start" },
{ "<leader>dq", "<cmd>lua require'dap'.close()<cr>", desc = "Quit" },
{ "<leader>dU", "<cmd>lua require'dapui'.toggle({reset = true})<cr>", desc = "Toggle UI" },
},
},
{
"jay-babu/mason-nvim-dap.nvim",
lazy = true,
event = "BufRead",
dependencies = { "williamboman/mason.nvim", "mfussenegger/nvim-dap" },
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, {})
opts.automatic_setup = true
opts.handlers = {
function(config)
-- all sources with no handler get passed here
-- Keep original functionality
require("mason-nvim-dap").default_setup(config)
end,
}
return opts
end,
-- enabled = vim.fn.has("win32") == 0,
config = function(_, opts)
require("mason").setup()
require("mason-nvim-dap").setup(opts)
end,
},
}

View file

@ -0,0 +1,7 @@
return {
"rachartier/tiny-devicons-auto-colors.nvim",
event = "VeryLazy",
config = function()
require("tiny-devicons-auto-colors").setup()
end,
}

View file

@ -0,0 +1,35 @@
return {
"pojokcodeid/dressing.nvim",
lazy = true,
init = function()
---@diagnostic disable-next-line: duplicate-set-field
vim.ui.select = function(...)
require("lazy").load({ plugins = { "dressing.nvim" } })
return vim.ui.select(...)
end
---@diagnostic disable-next-line: duplicate-set-field
-- vim.ui.input = function(...)
-- require("lazy").load({ plugins = { "dressing.nvim" } })
-- return vim.ui.input(...)
-- end
end,
opts = {
input = {
enabled = false,
title_pos = "center",
relative = "editor",
default_prompt = "",
win_options = { winhighlight = "Normal:Normal,NormalNC:Normal" },
prefer_width = 30,
max_width = { 140, 0.9 },
min_width = { 50, 0.2 },
},
select = {
backend = { "telescope", "builtin" },
builtin = { win_options = { winhighlight = "Normal:Normal,NormalNC:Normal" } },
},
},
config = function(_, opts)
require("dressing").setup(opts)
end,
}

View file

@ -0,0 +1,14 @@
return {
"j-hui/fidget.nvim",
lazy = true,
tag = "legacy",
event = "BufRead",
config = function()
require("fidget").setup({
window = {
blend = 0,
relative = "editor",
},
})
end,
}

View file

@ -0,0 +1,65 @@
local M = {
"RRethy/vim-illuminate",
event = "BufRead",
}
M.opts = {
delay = 200,
large_file_cutoff = 2000,
large_file_overrides = {
providers = { "lsp" },
},
filetypes_denylist = {
"mason",
"harpoon",
"DressingInput",
"NeogitCommitMessage",
"qf",
"dirvish",
"oil",
"minifiles",
"fugitive",
"alpha",
"NvimTree",
"lazy",
"NeogitStatus",
"Trouble",
"netrw",
"lir",
"DiffviewFiles",
"Outline",
"Jaq",
"spectre_panel",
"toggleterm",
"DressingSelect",
"TelescopePrompt",
},
}
function M.config(_, opts)
require("illuminate").configure(opts)
local function map(key, dir, buffer)
vim.keymap.set("n", key, function()
require("illuminate")["goto_" .. dir .. "_reference"](false)
end, { desc = dir:sub(1, 1):upper() .. dir:sub(2) .. " Reference", buffer = buffer })
end
map("]]", "next")
map("[[", "prev")
-- also set it after loading ftplugins, since a lot overwrite [[ and ]]
vim.api.nvim_create_autocmd("FileType", {
callback = function()
local buffer = vim.api.nvim_get_current_buf()
map("]]", "next", buffer)
map("[[", "prev", buffer)
end,
})
end
M.keys = {
{ "]]", desc = "Next Reference" },
{ "[[", desc = "Prev Reference" },
}
return M

View file

@ -0,0 +1,36 @@
local icons = require("pcode.user.icons")
return {
"echasnovski/mini.indentscope",
version = false, -- wait till new 0.7.0 release to put it back on semver
event = "BufReadPre",
opts = {
symbol = icons.ui.LineMiddle,
options = { try_as_border = true },
},
init = function()
vim.api.nvim_create_autocmd("FileType", {
pattern = {
"alpha",
"dashboard",
"fzf",
"help",
"lazy",
"lazyterm",
"mason",
"neo-tree",
"NvimTree",
"notify",
"toggleterm",
"Trouble",
"trouble",
"term",
"terminal",
"zsh",
"keymaps_table",
},
callback = function()
vim.b.miniindentscope_disable = true
end,
})
end,
}

View file

@ -0,0 +1,10 @@
return {
"barrett-ruth/live-server.nvim",
build = "npm i -g live-server",
cmd = { "LiveServerStart", "LiveServerStop", "LiveServerToggle" },
config = true,
keys = {
-- open http://localhost:5555/ jika menggunakan wsl
{ "<leader>rl", "<cmd>LiveServerToggle<cr>", desc = "LiveServer" },
},
}

View file

@ -0,0 +1,23 @@
return {
"ray-x/lsp_signature.nvim",
event = "VeryLazy",
opts = function()
local is_enabled = true
return {
-- Window mode
floating_window = is_enabled, -- Display it as floating window.
hi_parameter = "IncSearch", -- Color to highlight floating window.
handler_opts = { border = "rounded" }, -- Window style
-- Hint mode
hint_enable = false, -- Display it as hint.
hint_prefix = "👈 ",
-- Additionally, you can use <space>uH to toggle inlay hints.
toggle_key_flip_floatwin_setting = is_enabled,
}
end,
config = function(_, opts)
require("lsp_signature").setup(opts)
end,
}

View file

@ -0,0 +1,40 @@
return {
-- animations
{
"echasnovski/mini.animate",
event = "BufRead",
opts = function()
-- don't use animate when scrolling with the mouse
local mouse_scrolled = false
for _, scroll in ipairs({ "Up", "Down" }) do
local key = "<ScrollWheel" .. scroll .. ">"
vim.keymap.set({ "", "i" }, key, function()
mouse_scrolled = true
return key
end, { expr = true })
end
local animate = require("mini.animate")
return {
resize = {
timing = animate.gen_timing.linear({ duration = 100, unit = "total" }),
},
scroll = {
timing = animate.gen_timing.linear({ duration = 150, unit = "total" }),
subscroll = animate.gen_subscroll.equal({
predicate = function(total_scroll)
if mouse_scrolled then
mouse_scrolled = false
return false
end
return total_scroll > 1
end,
}),
},
}
end,
config = function(_, opts)
require("mini.animate").setup(opts)
end,
},
}

View file

@ -0,0 +1,35 @@
local M = {
"SmiteshP/nvim-navic",
event = "BufRead",
dependencies = {
"LunarVim/breadcrumbs.nvim",
opts = {},
config = true,
},
}
function M.config()
local icons = require("pcode.user.icons").kind
for key, value in pairs(icons) do
icons[key] = value .. " "
end
require("nvim-navic").setup({
icons = icons,
lsp = {
auto_attach = true,
preference = nil,
},
highlight = false,
separator = " > ",
depth_limit = 0,
depth_limit_indicator = "..",
safe_output = true,
lazy_update_context = false,
click = false,
format_text = function(text)
return text
end,
})
end
return M

View file

@ -0,0 +1,72 @@
return {
"monkoose/neocodeium",
event = "VeryLazy",
config = function()
local uv = vim.uv
local fn = vim.fn
local pummenu_timer = assert(uv.new_timer())
local cmp = require("cmp")
local neocodeium = require("neocodeium")
local renderer = require("neocodeium.renderer")
local completer = require("neocodeium.completer")
local function is_noselect()
local completeopt = vim.o.completeopt
return completeopt:find("noselect") and -1 or 0
end
local default_selected_compl = is_noselect()
local selected_compl = default_selected_compl
-- if cmp menu_opened then neocodeium clear
cmp.event:on("menu_opened", function()
neocodeium.clear()
end)
neocodeium.setup({
filter = function()
return not cmp.visible()
end,
})
-- if cmp menu_is_closed then neocodeium activate
cmp.event:on("menu_closed", function()
local cur_selected = fn.complete_info({ "selected" }).selected
if selected_compl == cur_selected then
completer:initiate()
else
selected_compl = cur_selected
completer:clear(true)
renderer:display_label()
pummenu_timer:stop()
pummenu_timer:start(
400,
0,
vim.schedule_wrap(function()
if fn.pumvisible() == 1 then
completer:initiate()
end
end)
)
end
end)
vim.keymap.set("i", "<C-g>", function()
neocodeium.accept()
end)
vim.keymap.set("i", "<c-Down>", function()
neocodeium.cycle()
end)
vim.keymap.set("i", "<c-Up>", function()
require("neocodeium").cycle(-1)
end)
vim.keymap.set("i", "<c-x>", function()
require("neocodeium").clear()
end)
-- create user command CodeiumDiasable
vim.api.nvim_create_user_command("CodeiumDisable", function()
require("neocodeium.commands").disable(true)
end, {})
-- create user command CodeiumEnable
vim.api.nvim_create_user_command("CodeiumEnable", function()
require("neocodeium.commands").enable()
end, {})
end,
}

View file

@ -0,0 +1,8 @@
return {
"karb94/neoscroll.nvim",
event = "VeryLazy",
lazy = true,
config = function()
require("neoscroll").setup({})
end,
}

View file

@ -0,0 +1,36 @@
return {
{
"nvzone/menu",
lazy = true,
event = { "VeryLazy" },
dependencies = {
{ "nvzone/volt", lazy = true },
{ "nvzone/showkeys", cmd = "ShowkeysToggle", lazy = true },
{
"nvzone/minty",
cmd = { "Shades", "Huefy" },
lazy = true,
},
},
opts = {
mouse = true,
border = true,
},
config = function(_, opts)
-- Keyboard users
vim.keymap.set("n", "<C-t>", function()
require("menu").open("default")
end, {})
-- mouse users + nvimtree users!
vim.keymap.set({ "n", "v" }, "<RightMouse>", function()
require("menu.utils").delete_old_menus()
vim.cmd.exec('"normal! \\<RightMouse>"')
local buf = vim.api.nvim_win_get_buf(vim.fn.getmousepos().winid)
local options = vim.bo[buf].ft == "NvimTree" and "nvimtree" or "default"
require("menu").open(options, opts)
end, {})
end,
},
}

View file

@ -0,0 +1,107 @@
local M = { "kevinhwang91/nvim-ufo" }
M.event = "VeryLazy"
M.dependencies = {
"kevinhwang91/promise-async",
"luukvbaal/statuscol.nvim",
}
M.config = function()
local builtin = require("statuscol.builtin")
local cfg = {
setopt = true,
relculright = true,
segments = {
{ text = { builtin.foldfunc, " " }, click = "v:lua.ScFa", hl = "Comment" },
{ text = { "%s" }, click = "v:lua.ScSa" },
{ text = { builtin.lnumfunc, " " }, click = "v:lua.ScLa" },
},
}
require("statuscol").setup(cfg)
vim.o.foldcolumn = "1" -- '0' is not bad
vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value
vim.o.foldlevelstart = 99
vim.o.foldenable = true
vim.o.fillchars = [[eob: ,fold: ,foldopen:▾,foldsep: ,foldclose:▸]]
-- Using ufo provider need remap `zR` and `zM`. If Neovim is 0.6.1, remap yourself
vim.keymap.set("n", "zR", require("ufo").openAllFolds)
vim.keymap.set("n", "zM", require("ufo").closeAllFolds)
local handler = function(virtText, lnum, endLnum, width, truncate)
local newVirtText = {}
local suffix = (" 󰡏 %d "):format(endLnum - lnum)
local sufWidth = vim.fn.strdisplaywidth(suffix)
local targetWidth = width - sufWidth
local curWidth = 0
for _, chunk in ipairs(virtText) do
local chunkText = chunk[1]
local chunkWidth = vim.fn.strdisplaywidth(chunkText)
if targetWidth > curWidth + chunkWidth then
table.insert(newVirtText, chunk)
else
chunkText = truncate(chunkText, targetWidth - curWidth)
local hlGroup = chunk[2]
table.insert(newVirtText, { chunkText, hlGroup })
chunkWidth = vim.fn.strdisplaywidth(chunkText)
-- str width returned from truncate() may less than 2nd argument, need padding
if curWidth + chunkWidth < targetWidth then
suffix = suffix .. (" "):rep(targetWidth - curWidth - chunkWidth)
end
break
end
curWidth = curWidth + chunkWidth
end
table.insert(newVirtText, { suffix, "MoreMsg" })
return newVirtText
end
local ftMap = {
-- typescriptreact = { "lsp", "treesitter" },
-- python = { "indent" },
-- git = "",
}
require("ufo").setup({
fold_virt_text_handler = handler,
close_fold_kinds = {},
-- close_fold_kinds = { "imports", "comment" },
provider_selector = function(bufnr, filetype, buftype)
-- if you prefer treesitter provider rather than lsp,
-- return ftMap[filetype] or {'treesitter', 'indent'}
return ftMap[filetype]
-- return { "treesitter", "indent" }
-- refer to ./doc/example.lua for detail
end,
preview = {
win_config = {
border = { "", "", "", "", "", "", "", "" },
winhighlight = "Normal:Folded",
winblend = 0,
},
mappings = {
scrollU = "<C-k>",
scrollD = "<C-j>",
jumpTop = "[",
jumpBot = "]",
},
},
})
vim.keymap.set("n", "zR", require("ufo").openAllFolds)
vim.keymap.set("n", "zM", require("ufo").closeAllFolds)
vim.keymap.set("n", "zr", require("ufo").openFoldsExceptKinds)
vim.keymap.set("n", "zm", require("ufo").closeFoldsWith) -- closeAllFolds == closeFoldsWith(0)
vim.keymap.set("n", "K", function()
local winid = require("ufo").peekFoldedLinesUnderCursor()
if not winid then
vim.lsp.buf.hover()
end
end)
end
return M

View file

@ -0,0 +1,37 @@
return {
"hiphish/rainbow-delimiters.nvim",
lazy = true,
event = "BufRead",
branch = "master",
config = function()
-- Modul ini berisi beberapa definisi default
local rainbow_delimiters = require("rainbow-delimiters")
vim.g.rainbow_delimiters = {
strategy = {
[""] = rainbow_delimiters.strategy["global"],
vim = rainbow_delimiters.strategy["local"],
},
query = {
[""] = "rainbow-delimiters",
-- lua = "rainbow-blocks",
},
priority = {
[""] = 110,
lua = 210,
},
highlight = {
"RainbowDelimiterRed",
"RainbowDelimiterYellow",
"RainbowDelimiterBlue",
"RainbowDelimiterOrange",
"RainbowDelimiterGreen",
"RainbowDelimiterViolet",
"RainbowDelimiterCyan",
},
blacklist = {
"html",
"tsx",
},
}
end,
}

View file

@ -0,0 +1,49 @@
return {
-- Incremental rename
{
"smjonas/inc-rename.nvim",
cmd = "IncRename",
-- stylua: ignore
keys = {
{"<leader>u","",desc="  Edit"},
{
"<leader>un",
function()
return ":IncRename " .. vim.fn.expand("<cword>")
end,
desc = "Incremental rename",
mode = "n",
noremap = true,
expr = true,
},
},
config = true,
},
{
"folke/noice.nvim",
optional = true,
opts = {
presets = { inc_rename = true },
},
},
-- Refactoring tool
{
"ThePrimeagen/refactoring.nvim",
keys = {
{
"<leader>r",
function()
require("refactoring").select_refactor({
show_success_message = true,
})
end,
mode = "v",
noremap = true,
silent = true,
expr = false,
desc = "  Refactoring",
},
},
opts = {},
},
}

View file

@ -0,0 +1,27 @@
vim.filetype.add({
extension = {
["http"] = "http",
},
})
return {
{
"mistweaverco/kulala.nvim",
ft = "http",
keys = {
{ "<leader>R", "", desc = " 󰖟 Rest" },
{ "<leader>Rs", "<cmd>lua require('kulala').run()<cr>", desc = "Send the request" },
{ "<leader>Rt", "<cmd>lua require('kulala').toggle_view()<cr>", desc = "Toggle headers/body" },
{ "<leader>Rp", "<cmd>lua require('kulala').jump_prev()<cr>", desc = "Jump to previous request" },
{ "<leader>Rn", "<cmd>lua require('kulala').jump_next()<cr>", desc = "Jump to next request" },
},
opts = {},
},
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "http", "graphql" })
return opts
end,
},
}

View file

@ -0,0 +1,46 @@
-- install luarock
-- sudo apt-get install luarocks lua5.4 (untuk linux)
-- https://github.com/luarocks/luarocks/wiki/Installation-instructions-for-Windows
-- manual penggunaan
-- https://www.jetbrains.com/help/idea/exploring-http-syntax.html
return {
"rest-nvim/rest.nvim",
-- NOTE: Follow https://github.com/rest-nvim/rest.nvim/issues/306
-- commit = "91badd46c60df6bd9800c809056af2d80d33da4c",
event = "VeryLazy",
enabled = vim.fn.executable("luarocks") == 1,
dependencies = {
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
vim.list_extend(opts.ensure_installed, { "http" })
end,
},
},
config = function()
require("rest-nvim").setup()
vim.api.nvim_create_autocmd("FileType", {
pattern = { "http", "httpResult" },
callback = function()
local opt = vim.opt
opt.number = false -- Print line number
opt.preserveindent = false -- Preserve indent structure as much as possible
opt.relativenumber = false
end,
})
end,
ft = "http",
keys = {
{
"<Leader>rh",
"<cmd>Rest run<cr>",
desc = "Run http request under cursor",
},
{
"<Leader>rH",
"<cmd>Rest last<cr>",
desc = "Run last http request",
},
},
}

View file

@ -0,0 +1,13 @@
return {
"dstein64/nvim-scrollview",
lazy = true,
event = { "BufRead", "InsertEnter", "BufNewFile" },
opts = {
bg = "LightCyan",
ctermbg = 160,
},
config = function(_, opts)
require("scrollview").setup(opts)
vim.g.scrollview_excluded_filetypes = { "NvimTree", "vista_kind", "Outline", "neo-tree" }
end,
}

View file

@ -0,0 +1 @@
return { "nvzone/showkeys", cmd = "ShowkeysToggle" }

View file

@ -0,0 +1,21 @@
return {
"mrjones2014/smart-splits.nvim",
lazy = true,
event = { "BufRead", "InsertEnter", "BufNewFile" },
opts = {
ignored_filetypes = {
"nofile",
"quickfix",
"qf",
"prompt",
},
ignored_buftypes = { "nofile" },
},
config = function(_, opts)
require("smart-splits").setup(opts)
vim.keymap.set("n", "<C-Left>", require("smart-splits").resize_left)
vim.keymap.set("n", "<C-Down>", require("smart-splits").resize_down)
vim.keymap.set("n", "<C-Up", require("smart-splits").resize_up)
vim.keymap.set("n", "<C-Right>", require("smart-splits").resize_right)
end,
}

View file

@ -0,0 +1,26 @@
return {
"nvim-telescope/telescope.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"jemag/telescope-diff.nvim",
},
config = function()
require("telescope").load_extension("diff")
end,
keys = {
{
"<leader>sd",
function()
require("telescope").extensions.diff.diff_files({ hidden = true })
end,
desc = "Diff 2 Files",
},
{
"<leader>sD",
function()
require("telescope").extensions.diff.diff_current({ hidden = true })
end,
desc = "Diff Current File",
},
},
}

View file

@ -0,0 +1,13 @@
return {
"nvim-telescope/telescope.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"roycrippen4/telescope-treesitter-info.nvim",
},
config = function()
require("telescope").load_extension("treesitter_info")
end,
keys = {
{ "<leader>p", "<cmd>Telescope treesitter_info<cr>", desc = "Treesitter Info" },
},
}

View file

@ -0,0 +1,22 @@
return {
"rachartier/tiny-inline-diagnostic.nvim",
event = "VeryLazy", -- Or `LspAttach`
priority = 1000, -- needs to be loaded in first
config = function()
require("tiny-inline-diagnostic").setup({
preset = "powerline",
-- signs = {
-- left = "",
-- right = "",
-- diag = "●",
-- arrow = "  ",
-- up_arrow = "  ",
-- vertical = " │",
-- vertical_end = " └",
-- },
blend = {
factor = 0.22,
},
})
end,
}

View file

@ -0,0 +1,70 @@
return {
-- transparant config
{
"xiyaowong/transparent.nvim",
lazy = true,
event = "BufWinEnter",
cmd = { "TransparentToggle", "TransparentEnable", "TransparentDisable" },
config = function()
require("transparent").setup({
extra_groups = {
"Normal",
"NormalNC",
"NormalFloat",
"FloatBorder",
"Comment",
"Folded",
"GitSignsAdd",
"GitSignsDelete",
"GitSignsChange",
"FoldColumn",
"WinBar",
"WinBarNC",
"NotifyBackground",
"TabLine",
"TabLineFill",
},
exclude_groups = {
-- disable active selection backgroun
"CursorLine",
"CursorLineNR",
"CursorLineSign",
"CursorLineFold",
-- disable nvimtree CursorLine
"NvimTreeCursorLine",
-- disable Neotree CursorLine
"NeoTreeCursorLine",
-- disable Telescope active selection background
"TelescopeSelection",
-- disable lualine background color
"LualineNormal",
},
})
require("transparent").clear_prefix("BufferLine")
-- clear prefix for which-key
require("transparent").clear_prefix("WhichKey")
-- clear prefix for lazy.nvim
require("transparent").clear_prefix("Lazy")
-- clear prefix for NvimTree
require("transparent").clear_prefix("NvimTree")
-- clear prefix for NeoTree
require("transparent").clear_prefix("NeoTree")
-- clear prefix for Telescope
require("transparent").clear_prefix("Telescope")
require("transparent").clear_prefix("mason")
-- create auto command to set transparent
vim.cmd("TransparentDisable")
vim.cmd("TransparentEnable")
vim.api.nvim_set_hl(0, "MasonHeader", { bold = true, bg = "NONE", fg = "#838FA7" })
vim.api.nvim_set_hl(0, "MasonMutedBlock", { bg = "NONE", fg = "#838FA7" })
vim.api.nvim_set_hl(0, "MasonHighlightBlockBold", { bold = true, bg = "NONE", fg = "#ABB2BF" })
vim.api.nvim_set_hl(0, "LazyH1", { bold = true, bg = "NONE", fg = "#ABB2BF" })
end,
},
{
"rcarriga/nvim-notify",
opts = function(_, opts)
opts.background_colour = "#00000000"
end,
},
}

View file

@ -0,0 +1,10 @@
return {
"nvim-treesitter/nvim-treesitter-context",
lazy = true,
event = { "BufRead", "VeryLazy" },
opts = {},
keys = {
{ "<leader>T", "", desc = "  TS Context" },
{ "<leader>Tt", "<cmd>TSContextToggle<cr>", desc = "Toggle Context" },
},
}

View file

@ -0,0 +1,27 @@
return {
{
"lukas-reineke/virt-column.nvim",
event = "BufRead",
opts = {},
config = function()
local icons = require("pcode.user.icons")
require("virt-column").overwrite({
exclude = {
filetypes = { "help", "text", "markdown" },
},
char = icons.ui.LineMiddle,
})
-- Mengatur colum color max 80 caracter
vim.api.nvim_create_autocmd("BufWinEnter", {
pattern = "*",
callback = function()
vim.opt.formatoptions = "croql"
vim.opt.textwidth = 80
vim.opt.colorcolumn = "+1"
vim.opt.lazyredraw = false
-- vim.cmd "hi ColorColumn guibg=#1B2430 ctermbg=246"
end,
})
end,
},
}

View file

@ -0,0 +1,64 @@
return {
--[[ "mg979/vim-visual-multi",
event = { "BufRead", "InsertEnter", "BufNewFile" },
branch = "master",
lazy = true,
init = function()
-- Nonaktifkan mapping default jika ingin custom
vim.g.VM_default_mappings = 0
vim.g.VM_mouse_mappings = 1 -- equal CTRL + Left Click on VSCODE
vim.g.VM_maps = {
["Find Under"] = "<C-d>", -- equal CTRL+D on VSCODE
["Find Subword Under"] = "<C-d>", -- equal CTRL+D on VSCODE
["Select Cursor Down"] = "<M-C-Down>", -- equal CTRL+ALT+DOWN on VSCODE
["Select Cursor Up"] = "<M-C-Up>", -- equal CTRL+ALT+UP on VSCODE
["Undo"] = "u", -- undo
["Redo"] = "<C-r>", -- redo
}
end, ]]
{
"brenton-leighton/multiple-cursors.nvim",
version = "*",
opts = {},
event = { "BufRead", "InsertEnter", "BufNewFile" },
keys = {
-- 🧠 Seperti Ctrl + D di VS Code → pilih kata berikutnya yang sama
{
"<C-d>",
function()
vim.cmd("MultipleCursorsAddJumpNextMatch")
vim.schedule(function()
vim.notify(
"🖊️ Multiple cursor: menambahkan seleksi berikutnya",
vim.log.levels.INFO,
{ title = "MultipleCursors" }
)
end)
end,
mode = { "n", "x" },
desc = "Select next match",
},
-- 👇 Menambah kursor ke bawah seperti Ctrl + Alt + ↓
{ "<C-M-Down>", "<Cmd>MultipleCursorsAddDown<CR>", mode = { "n", "i", "x" }, desc = "Add cursor down" },
-- 👆 Menambah kursor ke atas seperti Ctrl + Alt + ↑
{ "<C-M-Up>", "<Cmd>MultipleCursorsAddUp<CR>", mode = { "n", "i", "x" }, desc = "Add cursor up" },
-- 🖱️ Tambah/hapus kursor dengan Ctrl + Klik mouse
{
"<M-LeftMouse>",
"<Cmd>MultipleCursorsMouseAddDelete<CR>",
mode = { "n", "i" },
desc = "Add/remove cursor with mouse",
},
-- 🔲 Tambah kursor ke seluruh baris visual yang dipilih (pakai Leader + m)
{ "<Leader>m", "<Cmd>MultipleCursorsAddVisualArea<CR>", mode = { "x" }, desc = "Add cursors to visual lines" },
-- 🔒 Lock semua kursor supaya siap edit serentak
{ "<Leader>L", "<Cmd>MultipleCursorsLock<CR>", mode = { "n", "x" }, desc = "Lock cursors" },
},
},
}

View file

@ -0,0 +1,19 @@
return {
"gbprod/yanky.nvim",
event = "BufReadPre",
opts = {
ring = {
history_length = 50,
storage = "memory",
},
preserve_cursor_position = {
enabled = false,
},
},
config = function(_, opts)
require("yanky").setup(opts)
-- cycle through the yank history, only work after paste
vim.keymap.set("n", "[y", "<Plug>(YankyCycleForward)")
vim.keymap.set("n", "]y", "<Plug>(YankyCycleBackward)")
end,
}

View file

@ -0,0 +1,21 @@
return {
"folke/zen-mode.nvim",
event = "VeryLazy",
opts = {
plugins = {
options = {
-- hide statusline
laststatus = 0,
},
},
on_open = function(win)
require("notify")("Zen Mode ON")
end,
on_close = function()
require("notify")("Zen Mode OFF")
end,
},
keys = {
{ "<leader>z", "<cmd>ZenMode<cr>", desc = "󰤼 Toggle Zen Mode" },
},
}

View file

@ -0,0 +1,66 @@
return {
"lewis6991/gitsigns.nvim",
lazy = true,
enabled = vim.fn.executable("git") == 1,
ft = "gitcommit",
event = "BufRead",
opts = {
signs = {
add = { text = "" },
change = { text = "" },
delete = { text = "" },
topdelete = { text = "" },
changedelete = { text = "" },
untracked = { text = "" },
},
signcolumn = true,
numhl = false,
linehl = false,
word_diff = false,
watch_gitdir = {
interval = 1000,
follow_files = true,
},
attach_to_untracked = true,
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
current_line_blame_opts = {
virt_text = true,
virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align'
delay = 1000,
ignore_whitespace = false,
},
current_line_blame_formatter = "<author>, <author_time:%Y-%m-%d> - <summary>",
sign_priority = 6,
status_formatter = nil, -- Use default
update_debounce = 200,
max_file_length = 40000,
preview_config = {
-- Options passed to nvim_open_win
border = "rounded",
style = "minimal",
relative = "cursor",
row = 0,
col = 1,
},
},
config = function(_, opts)
require("gitsigns").setup(opts)
end,
-- stylua: ignore
keys = {
{ "<leader>g", "", desc = "  Git" },
{ "<leader>gg",function()LAZYGIT_TOGGLE()end,desc = "Lazygit"},
{ "<leader>gj",function()require("gitsigns").next_hunk()end,desc = "Next Hunk"},
{ "<leader>gk",function()require("gitsigns").prev_hunk()end,desc = "Prev Hunk"},
{ "<leader>gl",function()require("gitsigns").blame_line()end,desc = "Blame"},
{ "<leader>gp",function()require("gitsigns").preview_hunk()end,desc = "Preview Hunk"},
{ "<leader>gr",function()require("gitsigns").reset_hunk()end,desc = "Reset Hunk"},
{ "<leader>gR",function()require("gitsigns").reset_buffer()end,desc = "Reset Buffer"},
{ "<leader>gs",function()require("gitsigns").stage_hunk()end,desc = "Stage Hunge"},
{ "<leader>gu",function()require("gitsigns").undo_stage_hunk()end,desc = "Undo Stage Hunge"},
{ "<leader>go","<cmd>Telescope git_status<cr>",desc = "Opened Changed File"},
{ "<leader>gb","<cmd>Telescope git_branches<cr>",desc = "Checkout Branch"},
{ "<leader>gc","<cmd>Telescope git_commits<cr>",desc = "Checkout Commit"},
{ "<leader>gd","<cmd>Gitsigns diffthis HEAD<cr>",desc = "Diff"},
},
}

View file

@ -0,0 +1,39 @@
return {
--[[ "lukas-reineke/indent-blankline.nvim",
-- version = "3.5.4",
event = { "BufRead", "InsertEnter", "BufNewFile" },
lazy = true,
opts = {
indent = {
char = "",
tab_char = "",
},
scope = { enabled = false },
exclude = {
buftypes = {
"nofile",
"prompt",
"quickfix",
"terminal",
},
filetypes = {
"help",
"alpha",
"dashboard",
"neo-tree",
"Trouble",
"trouble",
"lazy",
"mason",
"notify",
"toggleterm",
"lazyterm",
"NvimTree",
"aerial",
"neogitstatus",
"startify",
},
},
},
main = "ibl", ]]
}

View file

@ -0,0 +1,22 @@
return {
"shellRaining/hlchunk.nvim",
event = { "BufReadPre", "BufNewFile" },
config = function()
require("hlchunk").setup({
chunk = {
enable = true,
-- ...
},
indent = {
enable = true,
-- ...
},
exclude_filetypes = {
aerial = true,
dashboard = true,
alpha = true,
-- some other filetypes
},
})
end,
}

View file

@ -0,0 +1,29 @@
return {
{
"nvim-treesitter",
opts = function(_, opts)
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "angular", "scss", "typescript" })
end
vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, {
pattern = { "*.component.html", "*.container.html" },
callback = function()
vim.treesitter.start(nil, "angular")
end,
})
end,
},
{
"williamboman/mason-lspconfig.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "angularls", "ts_ls" })
end,
},
{
"williamboman/mason.nvim",
opts = {
ensure_installed = { "prettier" },
},
},
}

View file

@ -0,0 +1,66 @@
return {
{
"nvim-treesitter/nvim-treesitter",
event = "VeryLazy",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "cpp", "c" })
end,
},
{
"williamboman/mason-lspconfig.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "clangd" })
end,
},
{
"jay-babu/mason-nvim-dap.nvim",
event = "VeryLazy",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "codelldb" })
end,
},
{
"pojokcodeid/auto-conform.nvim",
event = "VeryLazy",
opts = function(_, opts)
local package = "clang-format"
vim.list_extend(opts.ensure_installed, { package })
opts.formatters_by_ft.cpp = { package }
opts.formatters_by_ft.c = { package }
end,
},
{
"nvim-neotest/neotest",
ft = { "cpp" },
dependencies = {
"nvim-treesitter/nvim-treesitter",
"nvim-neotest/nvim-nio",
"antoinemadec/FixCursorHold.nvim",
"nvim-lua/plenary.nvim",
"alfaix/neotest-gtest",
},
config = function()
require("neotest").setup({
adapters = {
require("neotest-gtest").setup({}),
},
})
end,
-- stylua: ignore
keys = {
{ "<leader>T","",desc="  Test"},
{ "<leader>Tt", function() require("neotest").run.run(vim.fn.expand("%")) end, desc = "Run File" },
{ "<leader>Tr", function() require("neotest").run.run() end, desc = "Run Nearest" },
{ "<leader>TT", function() require("neotest").run.run(vim.loop.cwd()) end, desc = "Run All Test Files" },
{ "<leader>Tl", function() require("neotest").run.run_last() end, desc = "Run Last" },
{ "<Leader>Ts", function() require("neotest").summary.toggle() end, desc = "Toggle Summary" },
{ "<leader>To", function() require("neotest").output.open({ enter = true, auto_close = true }) end, desc = "Show Output" },
{ "<Leader>TO", function() require("neotest").output_panel.toggle() end, desc = "Toggle Output Panel" },
{ "<Leader>TS", function() require("neotest").run.stop() end, desc = "Stop" },
{ "<leader>rc", "<cmd>terminal<cr>g++ --debug main.cpp -o main<cr>", desc = "Compile Debug main.cpp" },
},
},
}

View file

@ -0,0 +1,149 @@
return {
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(
opts.ensure_installed,
{ "html", "javascript", "typescript", "tsx", "css", "json", "jsonc" }
)
end,
},
{
"williamboman/mason-lspconfig.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "html", "eslint", "cssls", "emmet_ls", "jsonls", "denols" })
end,
},
{
"pojokcodeid/auto-conform.nvim",
event = "VeryLazy",
opts = function(_, opts)
opts.formatters_by_ft = opts.formatters_by_ft or {}
local package = "prettier"
vim.list_extend(opts.ensure_installed, { package })
opts.formatters_by_ft.javascript = { package }
end,
},
{
"pojokcodeid/auto-lint.nvim",
opts = function(_, opts)
opts.linters_by_ft = opts.linters_by_ft or {}
vim.list_extend(opts.ensure_installed, { "eslint_d" })
opts.linters_by_ft.javascript = { "eslint_d" }
end,
},
{
"rcarriga/nvim-dap-ui",
lazy = true,
event = "BufRead",
dependencies = {
{ "mfussenegger/nvim-dap", lazy = true },
{ "nvim-neotest/nvim-nio", lazy = true },
{
"mxsdev/nvim-dap-vscode-js",
dependencies = {
"microsoft/vscode-js-debug",
version = "1.x",
build = "npm i && npm run compile vsDebugServerBundle && mv dist out",
},
config = function()
require("dap-vscode-js").setup({
-- node_path = "node", -- Path of node executable. Defaults to $NODE_PATH, and then "node"
debugger_path = vim.fn.stdpath("data") .. "/lazy/vscode-js-debug",
-- debugger_cmd = { "extension" }, -- Command to use to launch the debug server. Takes precedence over `node_path` and `debugger_path`.
adapters = {
"chrome",
"pwa-node",
"pwa-chrome",
"pwa-msedge",
"node-terminal",
"pwa-extensionHost",
"node",
"chrome",
}, -- which adapters to register in nvim-dap
-- log_file_path = "(stdpath cache)/dap_vscode_js.log" -- Path for file logging
-- log_file_level = false -- Logging level for output to file. Set to false to disable file logging.
-- log_console_level = vim.log.levels.ERROR -- Logging level for output to console. Set to false to disable console output.
})
end,
},
},
config = function()
require("pcode.user.dapui")
local js_based_languages = { "typescript" }
for _, language in ipairs(js_based_languages) do
require("dap").configurations[language] = {
{
type = "pwa-node",
request = "launch",
name = "Launch file",
runtimeExecutable = "deno",
runtimeArgs = {
"run",
"--inspect-wait",
"--allow-all",
},
program = "${file}",
cwd = "${workspaceFolder}",
attachSimplePort = 9229,
},
}
end
end,
-- stylua: ignor
keys = {
{ "<leader>d", "", desc = "  Debug" },
{ "<leader>dt", "<cmd>lua require'dap'.toggle_breakpoint()<cr>", desc = "Toggle Breakpoint" },
{ "<leader>db", "<cmd>lua require'dap'.step_back()<cr>", desc = "Step Back" },
{ "<leader>dc", "<cmd>lua require'dap'.continue()<cr>", desc = "Continue" },
{ "<leader>dC", "<cmd>lua require'dap'.run_to_cursor()<cr>", desc = "Run To Cursor" },
{ "<leader>dd", "<cmd>lua require'dap'.disconnect()<cr>", desc = "Disconnect" },
{ "<leader>dg", "<cmd>lua require'dap'.session()<cr>", desc = "Get Session" },
{ "<leader>di", "<cmd>lua require'dap'.step_into()<cr>", desc = "Step Into" },
{ "<leader>do", "<cmd>lua require'dap'.step_over()<cr>", desc = "Step Over" },
{ "<leader>du", "<cmd>lua require'dap'.step_out()<cr>", desc = "Step Out" },
{ "<leader>dp", "<cmd>lua require'dap'.pause()<cr>", desc = "Pause" },
{ "<leader>dr", "<cmd>lua require'dap'.repl.toggle()<cr>", desc = "Toggle Repl" },
{ "<leader>ds", "<cmd>lua require'dap'.continue()<cr>", desc = "Start" },
{ "<leader>dq", "<cmd>lua require'dap'.close()<cr>", desc = "Quit" },
{ "<leader>dU", "<cmd>lua require'dapui'.toggle({reset = true})<cr>", desc = "Toggle UI" },
{ "<leader>T", "", desc = "  Test" },
{ "<leader>Tr", "<cmd>terminal deno test<cr>", desc = "Run Test" },
{ "<leader>Tp", "<cmd>terminal deno test --parallel<cr>", desc = "Run Parallel" },
{
"<leader>Ts",
function()
vim.cmd("terminal deno test " .. vim.fn.expand("%"))
end,
desc = "Run Current File",
},
{
"<leader>Tu",
function()
-- local current_word = vim.fn.expand("<cword>")
local extracted_text = ""
local input = vim.fn.getline(".")
local contains_double_quotes = input:match('"')
local contains_single_quotes = input:match("'")
if contains_double_quotes then
-- process jika ada double quote
input = input:gsub('"', "'")
local start_index, end_index = input:find("'([^']*)'") -- Mencari teks di dalam tanda petik satu
extracted_text = input:sub(start_index, end_index)
elseif contains_single_quotes then
input = input:gsub('"', "'")
local start_index, end_index = input:find("'([^']*)'") -- Mencari teks di dalam tanda petik satu
extracted_text = input:sub(start_index, end_index)
else
extracted_text = (input:gsub("Deno.test%(function", "")):gsub("%(%) %{", "")
end
vim.cmd("terminal deno test --filter " .. extracted_text)
end,
desc = "Run Under Cursor",
},
},
},
}

View file

@ -0,0 +1,426 @@
return {
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "go", "gomod", "gosum", "gotmpl", "gowork" })
end,
},
{
"williamboman/mason-lspconfig.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "gopls" })
vim.api.nvim_create_user_command("GoRun", function()
local filename = vim.fn.expand("%:p") -- path lengkap file aktif
if not filename:match("%.go$") then
vim.notify("current file is not a go file.", vim.log.levels.WARN, { title = "GoRun" })
return
end
local Terminal = require("toggleterm.terminal").Terminal
local go_runner = Terminal:new({
cmd = "go run " .. filename,
direction = "float",
close_on_exit = false,
hidden = true,
})
go_runner:toggle()
end, {})
vim.api.nvim_create_user_command("GoBuild", function()
local cwd = vim.fn.getcwd()
local go_mod_path = cwd .. "/go.mod"
if vim.fn.filereadable(go_mod_path) == 0 then
vim.notify("current project is not a go project.", vim.log.levels.WARN, { title = "GoBuild" })
return
end
local Terminal = require("toggleterm.terminal").Terminal
-- create file exe jika os adalah windows
local filename = "output"
if vim.fn.has("win32") == 1 then
filename = "output.exe"
end
local go_runner = Terminal:new({
cmd = "go build -o " .. filename .. " && ./" .. filename,
direction = "float",
close_on_exit = false,
hidden = true,
})
go_runner:toggle()
end, {})
-- Fungsi untuk membuat proyek Go
local function go_new_project()
local function create_notif(message, level)
local notif_ok, notify = pcall(require, "notify")
if notif_ok then
notify(message, level)
else
print(message)
end
end
local function get_user_input(prompt, default_value)
vim.fn.inputsave()
local result = vim.fn.input(prompt, default_value)
vim.fn.inputrestore()
if result == "" then
create_notif("Input canceled.", "info")
return nil, true
end
return result, false
end
local project_name, canceled = get_user_input("Enter project name: ", "myapp")
if canceled then
return
end
local file_name, canceled = get_user_input("Enter file name (without .go): ", "main")
if canceled then
return
end
local function_name, canceled = get_user_input("Enter function name: ", "main")
if canceled then
return
end
local cwd = vim.fn.getcwd()
local project_path = cwd .. "/" .. project_name
if vim.fn.isdirectory(project_path) == 1 then
create_notif("Project directory already exists: " .. project_path, "error")
return
end
local mkdir_cmd = string.format("mkdir -p '%s'", project_path)
local gomod_cmd = string.format("cd '%s' && go mod init %s", project_path, project_name)
local entry_file = string.format("%s/%s.go", project_path, file_name)
local main_code = string.format(
[[
package main
import "fmt"
func %s() {
fmt.Println("Hello, world!")
}
]],
function_name
)
vim.fn.system(mkdir_cmd)
vim.fn.system(gomod_cmd)
local file = io.open(entry_file, "w")
if file then
file:write(main_code)
file:close()
create_notif("Go project created at " .. project_path, "info")
vim.cmd("cd " .. project_path)
-- Jika ada NvimTreeOpen, jalankan lalu kembalikan fokus ke file
if vim.fn.exists(":NvimTreeOpen") == 2 then
vim.cmd("NvimTreeOpen")
-- Penjadwalan agar kembali ke buffer file Go setelah NvimTree terbuka
vim.schedule(function()
vim.cmd("edit " .. entry_file)
-- Cari baris function
local lines = {}
for line in main_code:gmatch("([^\n]*)\n?") do
table.insert(lines, line)
end
local func_line = 1
for i, line in ipairs(lines) do
if line:find("func%s+" .. function_name .. "%s*%(") then
func_line = i
break
end
end
local target_line = func_line + 1
vim.api.nvim_win_set_cursor(0, { target_line, 4 })
vim.cmd("startinsert")
end)
else
vim.cmd("edit " .. entry_file)
local lines = {}
for line in main_code:gmatch("([^\n]*)\n?") do
table.insert(lines, line)
end
local func_line = 1
for i, line in ipairs(lines) do
if line:find("func%s+" .. function_name .. "%s*%(") then
func_line = i
break
end
end
local target_line = func_line + 1
vim.api.nvim_win_set_cursor(0, { target_line, 4 })
vim.cmd("startinsert")
end
else
create_notif("Failed to create file: " .. entry_file, "error")
end
end
vim.api.nvim_create_user_command("GoNewProject", go_new_project, {})
-- Fungsi untuk membuat file Go
local function go_new_file()
local function create_notif(message, level)
local notif_ok, notify = pcall(require, "notify")
if notif_ok then
notify(message, level)
else
print(message)
end
end
local function get_user_input(prompt, default_value)
vim.fn.inputsave()
local result = vim.fn.input(prompt, default_value)
vim.fn.inputrestore()
if result == "" then
create_notif("Input canceled.", "info")
return nil, true
end
return result, false
end
-- Ambil nama folder
local folder_name, canceled = get_user_input("Enter folder name (dot for current folder): ", ".")
if canceled then
return
end
-- Ambil nama file (tanpa .go)
local file_name, canceled = get_user_input("Enter file name (without .go): ", "newfile")
if canceled then
return
end
-- Ambil nama package
local package_name, canceled = get_user_input("Enter package name: ", "main")
if canceled then
return
end
-- Ambil nama function
local function_name, canceled = get_user_input("Enter function name: ", "main")
if canceled then
return
end
local cwd = vim.fn.getcwd()
local folder_path = (folder_name == "." or folder_name == "") and cwd or cwd .. "/" .. folder_name
-- Cek dan buat folder jika perlu
if vim.fn.isdirectory(folder_path) == 0 then
local mkdir_cmd = string.format("mkdir -p '%s'", folder_path)
vim.fn.system(mkdir_cmd)
end
local file_path = string.format("%s/%s.go", folder_path, file_name)
if vim.fn.filereadable(file_path) == 1 then
create_notif("File already exists: " .. file_path, "error")
return
end
local code = string.format(
[[
package %s
func %s() {
}
]],
package_name,
function_name
)
-- Buat file dan isi konten
local file = io.open(file_path, "w")
if file then
file:write(code)
file:close()
create_notif("Go file created: " .. file_path, "info")
-- Buka file dan tempatkan kursor di bawah function, mode insert
vim.cmd("edit " .. file_path)
local lines = {}
for line in code:gmatch("([^\n]*)\n?") do
table.insert(lines, line)
end
local func_line = 1
for i, line in ipairs(lines) do
if line:find("func%s+" .. function_name .. "%s*%(") then
func_line = i
break
end
end
local target_line = func_line + 1
vim.api.nvim_win_set_cursor(0, { target_line, 4 })
vim.cmd("startinsert")
else
create_notif("Failed to create file: " .. file_path, "error")
end
end
vim.api.nvim_create_user_command("GoNewFile", go_new_file, {})
end,
},
{
"pojokcodeid/auto-conform.nvim",
event = "VeryLazy",
opts = function(_, opts)
local package = "gofumpt"
vim.list_extend(opts.ensure_installed, { package })
opts.formatters_by_ft.gofumpt = { package }
end,
},
{
"pojokcodeid/auto-lint.nvim",
opts = function(_, opts)
opts.linters_by_ft = opts.linters_by_ft or {}
vim.list_extend(opts.ensure_installed, { "golangci-lint" })
opts.linters_by_ft.php = { "golangci-lint" }
end,
},
{
"nvim-neotest/neotest",
event = "VeryLazy",
ft = "go",
dependencies = {
"nvim-lua/plenary.nvim",
"antoinemadec/FixCursorHold.nvim",
"nvim-treesitter/nvim-treesitter",
"nvim-neotest/neotest-plenary",
"nvim-neotest/neotest-vim-test",
"nvim-neotest/nvim-nio",
{
"fredrikaverpil/neotest-golang",
dependencies = {
{
"leoluz/nvim-dap-go",
opts = {},
},
},
branch = "main",
},
},
opts = function(_, opts)
opts.adapters = opts.adapters or {}
opts.adapters["neotest-golang"] = {
go_test_args = {
"-v",
"-race",
"-count=1",
"-timeout=60s",
"-coverprofile=" .. vim.fn.getcwd() .. "/coverage.out",
},
dap_go_enabled = true,
}
end,
config = function(_, opts)
if opts.adapters then
local adapters = {}
for name, config in pairs(opts.adapters or {}) do
if type(name) == "number" then
if type(config) == "string" then
config = require(config)
end
adapters[#adapters + 1] = config
elseif config ~= false then
local adapter = require(name)
if type(config) == "table" and not vim.tbl_isempty(config) then
local meta = getmetatable(adapter)
if adapter.setup then
adapter.setup(config)
elseif meta and meta.__call then
adapter(config)
else
error("Adapter " .. name .. " does not support setup")
end
end
adapters[#adapters + 1] = adapter
end
end
opts.adapters = adapters
end
require("neotest").setup(opts)
end,
-- stylua: ignore
keys = {
{ "<leader>T","",desc="  Test"},
{ "<leader>Ta", function() require("neotest").run.attach() end, desc = "[t]est [a]ttach" },
{ "<leader>Tf", function() require("neotest").run.run(vim.fn.expand("%")) end, desc = "[t]est run [f]ile" },
{ "<leader>TA", function() require("neotest").run.run(vim.uv.cwd()) end, desc = "[t]est [A]ll files" },
{ "<leader>TS", function() require("neotest").run.run({ suite = true }) end, desc = "[t]est [S]uite" },
{ "<leader>Tn", function() require("neotest").run.run() end, desc = "[t]est [n]earest" },
{ "<leader>Tl", function() require("neotest").run.run_last() end, desc = "[t]est [l]ast" },
{ "<leader>Ts", function() require("neotest").summary.toggle() end, desc = "[t]est [s]ummary" },
{ "<leader>To", function() require("neotest").output.open({ enter = true, auto_close = true }) end, desc = "[t]est [o]utput" },
{ "<leader>TO", function() require("neotest").output_panel.toggle() end, desc = "[t]est [O]utput panel" },
{ "<leader>Tt", function() require("neotest").run.stop() end, desc = "[t]est [t]erminate" },
{ "<leader>Td", function() require("neotest").run.run({ suite = false, strategy = "dap" }) end, desc = "Debug nearest test" },
},
},
{
"rcarriga/nvim-dap-ui",
lazy = true,
event = "BufRead",
dependencies = {
{ "mfussenegger/nvim-dap", lazy = true },
{ "nvim-neotest/nvim-nio", lazy = true },
{
"theHamsta/nvim-dap-virtual-text",
opts = {
virt_text_win_col = 80,
},
},
},
config = function()
require("pcode.user.dapui")
end,
keys = {
{ "<leader>d", "", desc = "  Debug" },
{ "<leader>dt", "<cmd>lua require'dap'.toggle_breakpoint()<cr>", desc = "Toggle Breakpoint" },
{ "<leader>db", "<cmd>lua require'dap'.step_back()<cr>", desc = "Step Back" },
{ "<leader>dc", "<cmd>lua require'dap'.continue()<cr>", desc = "Continue" },
{ "<leader>dC", "<cmd>lua require'dap'.run_to_cursor()<cr>", desc = "Run To Cursor" },
{ "<leader>dd", "<cmd>lua require'dap'.disconnect()<cr>", desc = "Disconnect" },
{ "<leader>dg", "<cmd>lua require'dap'.session()<cr>", desc = "Get Session" },
{ "<leader>di", "<cmd>lua require'dap'.step_into()<cr>", desc = "Step Into" },
{ "<leader>do", "<cmd>lua require'dap'.step_over()<cr>", desc = "Step Over" },
{ "<leader>du", "<cmd>lua require'dap'.step_out()<cr>", desc = "Step Out" },
{ "<leader>dp", "<cmd>lua require'dap'.pause()<cr>", desc = "Pause" },
{ "<leader>dr", "<cmd>lua require'dap'.repl.toggle()<cr>", desc = "Toggle Repl" },
{ "<leader>ds", "<cmd>lua require'dap'.continue()<cr>", desc = "Start" },
{ "<leader>dq", "<cmd>lua require'dap'.close()<cr>", desc = "Quit" },
{ "<leader>dU", "<cmd>lua require'dapui'.toggle({reset = true})<cr>", desc = "Toggle UI" },
},
},
{
"jay-babu/mason-nvim-dap.nvim",
lazy = true,
event = "BufRead",
dependencies = { "williamboman/mason.nvim", "mfussenegger/nvim-dap" },
config = function()
require("mason-nvim-dap").setup({
automatic_installation = true,
automatic_setup = true,
handlers = {},
ensure_installed = { "delve" },
})
end,
},
}

View file

@ -0,0 +1,111 @@
local M = {}
M = {
{
"williamboman/mason-lspconfig.nvim",
opts = function(_, opts)
opts.skip_config = opts.skip_config or {}
vim.list_extend(opts.skip_config, { "jdtls" })
end,
},
{
"pojokcodeid/auto-java-project.nvim",
event = "VeryLazy",
config = function()
require("auto-java-project").setup()
vim.keymap.set("n", "<leader>Jc", ":CreateJavaClass<cr>", { desc = "Create Java Class" })
vim.keymap.set("n", "<leader>Jm", ":CreateJavaMainClass<cr>", { desc = "Create Java Main Class" })
vim.keymap.set("n", "<leader>Ji", ":CreateJavaInterface<cr>", { desc = "Create Java Interface" })
end,
},
{
"mfussenegger/nvim-jdtls",
dependencies = { "pojokcodeid/auto-jdtls.nvim" },
ft = { "java" },
-- your opts go here
opts = {},
config = function(_, opts)
require("auto-jdtls").setup(opts)
require("auto-jdtls.utils").lsp_keymaps()
require("auto-jdtls.utils").jdtls_keymaps()
vim.keymap.set("n", "<leader>rM", ":RunMvnSpringBoot<CR>", { desc = "Run Maven Sping Boot" })
vim.keymap.set("n", "<leader>rG", ":RunGradleSpringBoot<CR>", { desc = "Run Gradle Sping Boot" })
vim.keymap.set("n", "<leader>rm", ":RunMaven<CR>", { desc = "Run Maven Project" })
vim.keymap.set("n", "<leader>rg", ":RunGradle<CR>", { desc = "Run Gradle Project" })
end,
},
{
"nvim-neotest/neotest",
dependencies = {
"nvim-neotest/nvim-nio",
"nvim-lua/plenary.nvim",
"antoinemadec/FixCursorHold.nvim",
"nvim-treesitter/nvim-treesitter",
"andy-bell101/neotest-java",
},
-- enabled = vim.fn.findfile("build.gradle", vim.fn.getcwd()) == "build.gradle" or false,
config = function()
require("auto-jdtls.create_maven_project")
require("neotest").setup({
adapters = {
require("neotest-java"),
},
})
end,
-- stylua: ignore
keys = {
{ "<leader>T","",desc="  Test"},
{ "<leader>Tt", function() require("neotest").run.run(vim.fn.expand("%")) end, desc = "Run File" },
{ "<leader>Tr", function() require("neotest").run.run() end, desc = "Run Nearest" },
{ "<leader>TT", function() require("neotest").run.run(vim.loop.cwd()) end, desc = "Run All Test Files" },
{ "<leader>Tl", function() require("neotest").run.run_last() end, desc = "Run Last" },
{ "<Leader>Ts", function() require("neotest").summary.toggle() end, desc = "Toggle Summary" },
{ "<leader>To", function() require("neotest").output.open({ enter = true, auto_close = true }) end, desc = "Show Output" },
{ "<Leader>TO", function() require("neotest").output_panel.toggle() end, desc = "Toggle Output Panel" },
{ "<Leader>TS", function() require("neotest").run.stop() end, desc = "Stop" },
},
},
{
"rockerBOO/symbols-outline.nvim",
cmd = "SymbolsOutline",
config = function()
local icons = require("pcode.user.icons").kind
require("symbols-outline").setup({
symbols = {
File = { icon = icons.File, hl = "@text.uri" },
Module = { icon = icons.Module, hl = "@namespace" },
Namespace = { icon = icons.Namespace, hl = "@namespace" },
Package = { icon = icons.Package, hl = "@namespace" },
Class = { icon = icons.Class, hl = "@type" },
Method = { icon = icons.Method, hl = "@method" },
Property = { icon = icons.Property, hl = "@method" },
Field = { icon = icons.Field, hl = "@field" },
Constructor = { icon = icons.Constructor, hl = "@constructor" },
Enum = { icon = icons.Enum, hl = "@type" },
Interface = { icon = icons.Interface, hl = "@type" },
Function = { icon = icons.Function, hl = "@function" },
Variable = { icon = icons.Variable, hl = "@constant" },
Constant = { icon = icons.Constant, hl = "@constant" },
String = { icon = icons.String, hl = "@string" },
Number = { icon = icons.Number, hl = "@number" },
Boolean = { icon = icons.Boolean, hl = "@boolean" },
Array = { icon = icons.Array, hl = "@constant" },
Object = { icon = icons.Object, hl = "@type" },
Key = { icon = icons.Key, hl = "@type" },
Null = { icon = icons.Null, hl = "@type" },
EnumMember = { icon = icons.EnumMember, hl = "@field" },
Struct = { icon = icons.Struct, hl = "@type" },
Event = { icon = icons.Event, hl = "@type" },
Operator = { icon = icons.Operator, hl = "@operator" },
TypeParameter = { icon = icons.TypeParameter, hl = "@parameter" },
Component = { icon = icons.Component, hl = "@function" },
Fragment = { icon = icons.Fragment, hl = "@constant" },
},
})
end,
keys = {
{ "<leader>Js", "<cmd>SymbolsOutline<cr>", desc = "Toggle Outline" },
},
},
}
return M

View file

@ -0,0 +1,47 @@
return {
"nvim-java/nvim-java",
-- event = "VeryLazy",
ft = { "java" },
dependencies = {
"MunifTanjim/nui.nvim",
"neovim/nvim-lspconfig",
"mfussenegger/nvim-dap",
"williamboman/mason.nvim",
},
config = function()
require("java").setup({
notifications = {
dap = false,
},
jdk = {
auto_install = false,
},
})
require("lspconfig").jdtls.setup({
settings = {
java = {
configuration = {
runtimes = {
{
name = "JavaSE-17",
path = os.getenv("JAVA_HOME") or "",
default = true,
},
},
},
},
},
})
end,
keys = {
{ "<leader>rg", "", desc = "Gradle" },
{ "<leader>rgp", "<cmd>JavaProfile<cr>", desc = "Java Profile" },
{ "<leader>rgg", "<cmd>terminal<cr>gradle run<cr>", desc = "Run Gradle" },
{ "<leader>rgb", "<cmd>JavaBuildBuildWorkspace<cr>", desc = "Java Build Workspace" },
{ "<leader>rgd", "<cmd>JavaDapConfig<cr>", desc = "Java Configure DAP" },
{ "<leader>T", "", desc = "Test" },
{ "<leader>Tc", "<cmd>JavaTestRunCurrentClass<cr>", desc = "Test Current Class" },
{ "<leader>Tm", "<cmd>JavaTestRunCurrentMethod<cr>", desc = "Test Current Method" },
{ "<leader>Th", "<cmd>JavaTestViewLastReport<cr>", desc = "View Test Last Report" },
},
}

View file

@ -0,0 +1,327 @@
local M = {}
local java_filetypes = { "java" }
local root_markers = { ".git", "mvnw", "gradlew", "pom.xml", "build.gradle" }
-- Utility function to extend or override a config table, similar to the way
-- that Plugin.opts works.
---@param config table
---@param custom function | table | nil
local function extend_or_override(config, custom, ...)
if type(custom) == "function" then
config = custom(config, ...) or config
elseif custom then
config = vim.tbl_deep_extend("force", config, custom) --[[@as table]]
end
return config
end
local function capabilities()
local status_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp")
if status_ok then
return cmp_nvim_lsp.default_capabilities()
end
local CAPABILITIES = vim.lsp.protocol.make_client_capabilities()
CAPABILITIES.textDocument.completion.completionItem.snippetSupport = true
CAPABILITIES.textDocument.completion.completionItem.resolveSupport = {
properties = {
"documentation",
"detail",
"additionalTextEdits",
},
}
return CAPABILITIES
end
M = {
{
"williamboman/mason-lspconfig.nvim",
-- stylua: ignore
opts = function(_, opts)
opts.skip_config = opts.skip_config or {}
vim.list_extend(opts.skip_config, { "jdtls" })
-- Set vim motion for <Space> + l + h to show code documentation about the code the cursor is currently over if available
vim.keymap.set("n", "<leader>lh", vim.lsp.buf.hover, { desc = "Code Hover Documentation" })
-- Set vim motion for <Space> + l + d to go where the code/variable under the cursor was defined
vim.keymap.set("n", "<leader>ld", vim.lsp.buf.definition, { desc = "Code Goto Definition" })
-- Set vim motion for <Space> + l + a for display code action suggestions for code diagnostics in both normal and visual mode
vim.keymap.set({ "n", "v" }, "<leader>la", vim.lsp.buf.code_action, { desc = "Code Actions" })
-- Set vim motion for <Space> + l + r to display references to the code under the cursor
vim.keymap.set("n", "<leader>lr", require("telescope.builtin").lsp_references, { desc = "Code Goto References" })
-- Set vim motion for <Space> + l + i to display implementations to the code under the cursor
vim.keymap.set("n", "<leader>li", require("telescope.builtin").lsp_implementations, { desc = "Code Goto Implementations" })
-- Set a vim motion for <Space> + l + <Shift>R to smartly rename the code under the cursor
vim.keymap.set("n", "<leader>lR", vim.lsp.buf.rename, { desc = "Code Rename" })
-- Set a vim motion for <Space> + l + <Shift>D to go to where the code/object was declared in the project (class file)
vim.keymap.set("n", "<leader>lD", vim.lsp.buf.declaration, { desc = "Code Goto Declaration" })
end,
keys = {
{ "<leader>l", "", desc = "LSP", mode = { "n", "v" } },
},
},
{
"mfussenegger/nvim-jdtls",
ft = java_filetypes,
enabled = true,
opts = function()
return {
root_dir = require("jdtls.setup").find_root(root_markers),
project_name = function()
return vim.fn.fnamemodify(vim.fn.getcwd(), ":p:h:t")
end,
-- Where are the config and workspace dirs for a project?
jdtls_config_dir = function(project_name)
return vim.fn.stdpath("cache") .. "/jdtls/" .. project_name .. "/config"
end,
jdtls_workspace_dir = function(project_name)
return vim.fn.stdpath("cache") .. "/jdtls/" .. project_name .. "/workspace"
end,
cmd = { vim.fn.exepath("jdtls") },
full_cmd = function(opts)
local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":p:h:t")
local cmd = vim.deepcopy(opts.cmd)
if project_name then
vim.list_extend(cmd, {
"-configuration",
opts.jdtls_config_dir(project_name),
"-data",
opts.jdtls_workspace_dir(project_name),
})
end
return cmd
end,
-- These depend on nvim-dap, but can additionally be disabled by setting false here.
dap = { hotcodereplace = "auto", config_overrides = {} },
dap_main = {},
test = true,
settings = {
java = {
inlayHints = {
parameterNames = {
enabled = "all",
},
},
},
},
}
end,
config = function(_, opts)
local opt = vim.opt
opt.shiftwidth = 4
opt.tabstop = 4
opt.softtabstop = 4
opt.ts = 4
opt.expandtab = true
local mason_registry = require("mason-registry")
local bundles = {} ---@type string[]
if opts.dap and mason_registry.is_installed("java-debug-adapter") then
local java_dbg_pkg = mason_registry.get_package("java-debug-adapter")
local java_dbg_path = java_dbg_pkg:get_install_path()
local jar_patterns = {
java_dbg_path .. "/extension/server/com.microsoft.java.debug.plugin-*.jar",
}
-- java-test also depends on java-debug-adapter.
if opts.test and mason_registry.is_installed("java-test") then
local java_test_pkg = mason_registry.get_package("java-test")
local java_test_path = java_test_pkg:get_install_path()
vim.list_extend(jar_patterns, {
java_test_path .. "/extension/server/*.jar",
})
end
for _, jar_pattern in ipairs(jar_patterns) do
for _, bundle in ipairs(vim.split(vim.fn.glob(jar_pattern), "\n")) do
table.insert(bundles, bundle)
end
end
end
local function attach_jdtls()
-- Configuration can be augmented and overridden by opts.jdtls
local config = extend_or_override({
cmd = opts.full_cmd(opts),
root_dir = require("jdtls.setup").find_root(root_markers),
init_options = {
bundles = bundles,
},
settings = opts.settings,
-- enable CMP capabilities
-- capabilities = require("user.lsp.handlers").capabilities or nil,
-- capabilities = require("auto-lsp.lsp.handlers").capabilities or nil,
capabilities = capabilities() or nil,
}, opts.jdtls)
-- Existing server will be reused if the root_dir matches.
require("jdtls").start_or_attach(config)
-- not need to require("jdtls.setup").add_commands(), start automatically adds commands
end
vim.api.nvim_create_autocmd("FileType", {
pattern = java_filetypes,
callback = attach_jdtls,
})
-- Setup keymap and dap after the lsp is fully attached.
-- https://github.com/mfussenegger/nvim-jdtls#nvim-dap-configuration
-- https://neovim.io/doc/user/lsp.html#LspAttach
vim.api.nvim_create_autocmd("LspAttach", {
callback = function(args)
local client = vim.lsp.get_client_by_id(args.data.client_id)
-- stylua: ignore
if client and client.name == "jdtls" then
-- add keymaps
vim.keymap.set('n', '<leader>J', "", { desc = "Java" })
-- Set a Vim motion to <Space> + <Shift>J + o to organize imports in normal mode
vim.keymap.set('n', '<leader>Jo', "<Cmd> lua require('jdtls').organize_imports()<CR>", { desc = "Java Organize Imports" })
-- Set a Vim motion to <Space> + <Shift>J + v to extract the code under the cursor to a variable
vim.keymap.set('n', '<leader>Jv', "<Cmd> lua require('jdtls').extract_variable()<CR>", { desc = "Java Extract Variable" })
-- Set a Vim motion to <Space> + <Shift>J + v to extract the code selected in visual mode to a variable
vim.keymap.set('v', '<leader>Jv', "<Esc><Cmd> lua require('jdtls').extract_variable(true)<CR>", { desc = "Java Extract Variable" })
-- Set a Vim motion to <Space> + <Shift>J + <Shift>C to extract the code under the cursor to a static variable
vim.keymap.set('n', '<leader>JC', "<Cmd> lua require('jdtls').extract_constant()<CR>", { desc = "Java Extract Constant" })
-- Set a Vim motion to <Space> + <Shift>J + <Shift>C to extract the code selected in visual mode to a static variable
vim.keymap.set('v', '<leader>JC', "<Esc><Cmd> lua require('jdtls').extract_constant(true)<CR>", { desc = "Java Extract Constant" })
-- Set a Vim motion to <Space> + <Shift>J + t to run the test method currently under the cursor
vim.keymap.set('n', '<leader>Jt', "<Cmd> lua require('jdtls').test_nearest_method()<CR>", { desc = "Java Test Method" })
-- Set a Vim motion to <Space> + <Shift>J + t to run the test method that is currently selected in visual mode
vim.keymap.set('v', '<leader>Jt', "<Esc><Cmd> lua require('jdtls').test_nearest_method(true)<CR>", { desc = "Java Test Method" })
-- Set a Vim motion to <Space> + <Shift>J + <Shift>T to run an entire test suite (class)
vim.keymap.set('n', '<leader>JT', "<Cmd> lua require('jdtls').test_class()<CR>", { desc = "Java Test Class" })
-- Set a Vim motion to <Space> + <Shift>J + u to update the project configuration
vim.keymap.set('n', '<leader>Ju', "<Cmd> JdtUpdateConfig<CR>", { desc = "Java Update Config" })
if opts.dap and mason_registry.is_installed("java-debug-adapter") then
-- custom init for Java debugger
require("jdtls").setup_dap(opts.dap)
require("jdtls.dap").setup_dap_main_class_configs(opts.dap_main)
end
-- User can set additional keymaps in opts.on_attach
if opts.on_attach then
opts.on_attach(args)
end
end
end,
})
-- Avoid race condition by calling attach the first time, since the autocmd won't fire.
attach_jdtls()
end,
},
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "java" })
end,
},
{
"williamboman/mason-lspconfig.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "jdtls" })
end,
},
{
"pojokcodeid/auto-conform.nvim",
event = "VeryLazy",
opts = function(_, opts)
vim.list_extend(opts.ensure_installed, { "java-debug-adapter", "java-test" })
opts.formatters_by_ft.java = { "lsp_fmt" }
end,
},
{
"nvim-neotest/neotest",
dependencies = {
"nvim-neotest/nvim-nio",
"nvim-lua/plenary.nvim",
"antoinemadec/FixCursorHold.nvim",
"nvim-treesitter/nvim-treesitter",
"andy-bell101/neotest-java",
},
config = function()
local project_type = "maven"
local gradle_file = vim.fn.findfile("build.gradle", vim.fn.getcwd())
if gradle_file then
project_type = "gradle"
end
require("neotest").setup({
adapters = {
require("neotest-java")({
-- function to determine which runner to use based on project path
determine_runner = function(project_root_path)
-- return should be "maven" or "gradle"
return project_type
end,
-- override the builtin runner discovery behaviour to always use given
-- tool. Default is "nil", so no override
force_runner = nil,
-- if the automatic runner discovery can't uniquely determine whether
-- to use Gradle or Maven, fallback to using this runner. Default is
-- "gradle or maven"
fallback_runner = project_type,
}),
},
})
end,
-- stylua: ignore
keys = {
{ "<leader>T","",desc="  Test"},
{ "<leader>Tt", function() require("neotest").run.run(vim.fn.expand("%")) end, desc = "Run File" },
{ "<leader>Tr", function() require("neotest").run.run() end, desc = "Run Nearest" },
{ "<leader>TT", function() require("neotest").run.run(vim.loop.cwd()) end, desc = "Run All Test Files" },
{ "<leader>Tl", function() require("neotest").run.run_last() end, desc = "Run Last" },
{ "<Leader>Ts", function() require("neotest").summary.toggle() end, desc = "Toggle Summary" },
{ "<leader>To", function() require("neotest").output.open({ enter = true, auto_close = true }) end, desc = "Show Output" },
{ "<Leader>TO", function() require("neotest").output_panel.toggle() end, desc = "Toggle Output Panel" },
{ "<Leader>TS", function() require("neotest").run.stop() end, desc = "Stop" },
{ "<leader>rg", "<cmd>terminal<cr>gradle run<cr>", desc = "Run Gradle", mode = "n" },
},
},
{
"rockerBOO/symbols-outline.nvim",
cmd = "SymbolsOutline",
config = function()
require("symbols-outline").setup({
symbols = {
File = { icon = "󰈔", hl = "@text.uri" },
Module = { icon = "", hl = "@namespace" },
Namespace = { icon = "󰅪", hl = "@namespace" },
Package = { icon = "", hl = "@namespace" },
Class = { icon = "𝓒", hl = "@type" },
Method = { icon = "ƒ", hl = "@method" },
Property = { icon = "", hl = "@method" },
Field = { icon = "", hl = "@field" },
Constructor = { icon = "", hl = "@constructor" },
Enum = { icon = "", hl = "@type" },
Interface = { icon = "", hl = "@type" },
Function = { icon = "", hl = "@function" },
Variable = { icon = "", hl = "@constant" },
Constant = { icon = "", hl = "@constant" },
String = { icon = "𝓐", hl = "@string" },
Number = { icon = "#", hl = "@number" },
Boolean = { icon = "󰨙 ", hl = "@boolean" },
Array = { icon = "", hl = "@constant" },
Object = { icon = "⦿", hl = "@type" },
Key = { icon = "🔐", hl = "@type" },
Null = { icon = "NULL", hl = "@type" },
EnumMember = { icon = "", hl = "@field" },
Struct = { icon = "𝓢", hl = "@type" },
Event = { icon = "🗲", hl = "@type" },
Operator = { icon = "+", hl = "@operator" },
TypeParameter = { icon = "𝙏", hl = "@parameter" },
Component = { icon = "󰅴", hl = "@function" },
Fragment = { icon = "󰅴", hl = "@constant" },
},
})
end,
keys = {
{ "<leader>S", "<cmd>SymbolsOutline<cr>", desc = "Toggle Outline" },
},
},
}
return M

View file

@ -0,0 +1,32 @@
return {
"nvim-java/nvim-java",
-- ft = { "java" },
dependencies = {
"MunifTanjim/nui.nvim",
"neovim/nvim-lspconfig",
"mfussenegger/nvim-dap",
"williamboman/mason.nvim",
},
opts = {
notifications = {
dap = false,
},
jdk = {
auto_install = false,
},
-- NOTE: One of these files must be in your project root directory.
-- Otherwise the debugger will end in the wrong directory and fail.
root_markers = {
"settings.gradle",
"settings.gradle.kts",
"pom.xml",
"build.gradle",
"mvnw",
"gradlew",
"build.gradle",
"build.gradle.kts",
".git",
},
},
}

View file

@ -0,0 +1,235 @@
local config_file = "jest.config.ts"
local M = {
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "html", "javascript", "typescript", "tsx", "css", "json", "jsonc" })
end,
},
{
"williamboman/mason-lspconfig.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "html", "eslint", "cssls", "emmet_ls", "jsonls", "ts_ls" })
end,
},
{
"pojokcodeid/auto-conform.nvim",
event = "VeryLazy",
opts = function(_, opts)
opts.formatters_by_ft = opts.formatters_by_ft or {}
local package = "prettier"
vim.list_extend(opts.ensure_installed, { package })
opts.formatters_by_ft.javascript = { package }
end,
},
{
"nvim-neotest/neotest",
dependencies = {
"antoinemadec/FixCursorHold.nvim",
"nvim-neotest/neotest-jest",
"nvim-neotest/nvim-nio",
"marilari88/neotest-vitest",
},
ft = { "javascript", "typescript", "javascriptreact", "typescriptreact" },
opts = {
adapters = {
["neotest-jest"] = {
jestCommand = "npm test -- ",
jestConfigFile = function()
local file = vim.fn.expand("%:p")
if string.find(file, "/packages/") then
return string.match(file, "(.-/[^/]+/)src") .. config_file
end
return vim.fn.getcwd() .. "/" .. config_file
end,
cwd = function()
local file = vim.fn.expand("%:p")
if string.find(file, "/packages/") then
return string.match(file, "(.-/[^/]+/)src")
end
return vim.fn.getcwd()
end,
},
["neotest-vitest"] = {},
},
status = { virtual_text = true },
output = { open_on_run = true },
},
config = function(_, opts)
local neotest_ns = vim.api.nvim_create_namespace("neotest")
vim.diagnostic.config({
virtual_text = {
format = function(diagnostic)
-- Replace newline and tab characters with space for more compact diagnostics
local message = diagnostic.message:gsub("\n", " "):gsub("\t", " "):gsub("%s+", " "):gsub("^%s+", "")
return message
end,
},
}, neotest_ns)
opts.consumers = opts.consumers or {}
if opts.adapters then
local adapters = {}
for name, config in pairs(opts.adapters or {}) do
if type(name) == "number" then
if type(config) == "string" then
config = require(config)
end
adapters[#adapters + 1] = config
elseif config ~= false then
local adapter = require(name)
if type(config) == "table" and not vim.tbl_isempty(config) then
local meta = getmetatable(adapter)
if adapter.setup then
adapter.setup(config)
elseif meta and meta.__call then
adapter(config)
else
error("Adapter " .. name .. " does not support setup")
end
end
adapters[#adapters + 1] = adapter
end
end
opts.adapters = adapters
end
require("neotest").setup(opts)
end,
-- stylua: ignore
keys = {
{ "<leader>T","",desc="  Test"},
{ "<leader>Tt", function() require("neotest").run.run(vim.fn.expand("%")) end, desc = "Run File" },
{ "<leader>Tr", function() require("neotest").run.run() end, desc = "Run Nearest" },
{ "<leader>TT", function() require("neotest").run.run(vim.loop.cwd()) end, desc = "Run All Test Files" },
{ "<leader>Tl", function() require("neotest").run.run_last() end, desc = "Run Last" },
{ "<Leader>Ts", function() require("neotest").summary.toggle() end, desc = "Toggle Summary" },
{ "<leader>To", function() require("neotest").output.open({ enter = true, auto_close = true }) end, desc = "Show Output" },
{ "<Leader>TO", function() require("neotest").output_panel.toggle() end, desc = "Toggle Output Panel" },
{ "<Leader>TS", function() require("neotest").run.stop() end, desc = "Stop" },
},
},
{
"pojokcodeid/npm-runner.nvim",
event = "VeryLazy",
dependencies = {
"rcarriga/nvim-notify",
},
-- your opts go here
opts = {
command = {
dev = {
start = "NpmRunDev",
stop = "NpmStopDev",
cmd = "npm run dev",
},
prod = {
start = "NpmStart",
stop = "NpmStop",
cmd = "npm start",
},
},
opt = {
show_mapping = "<leader>nm",
hide_mapping = "<leader>nh",
width = 70,
height = 20,
},
},
keys = {
{ "<leader>n", "", desc = "  Npm" },
},
config = function(_, opts)
require("npm-runner").setup(opts.command, opts.opt)
end,
},
{
"rcarriga/nvim-dap-ui",
lazy = true,
event = "BufRead",
dependencies = {
{ "mfussenegger/nvim-dap", lazy = true },
{ "nvim-neotest/nvim-nio", lazy = true },
{
"mxsdev/nvim-dap-vscode-js",
dependencies = {
"microsoft/vscode-js-debug",
version = "1.x",
build = "npm i && npm run compile vsDebugServerBundle && mv dist out",
},
config = function()
require("dap-vscode-js").setup({
-- node_path = "node", -- Path of node executable. Defaults to $NODE_PATH, and then "node"
debugger_path = vim.fn.stdpath("data") .. "/lazy/vscode-js-debug",
-- debugger_cmd = { "extension" }, -- Command to use to launch the debug server. Takes precedence over `node_path` and `debugger_path`.
adapters = {
"chrome",
"pwa-node",
"pwa-chrome",
"pwa-msedge",
"node-terminal",
"pwa-extensionHost",
"node",
"chrome",
}, -- which adapters to register in nvim-dap
-- log_file_path = "(stdpath cache)/dap_vscode_js.log" -- Path for file logging
-- log_file_level = false -- Logging level for output to file. Set to false to disable file logging.
-- log_console_level = vim.log.levels.ERROR -- Logging level for output to console. Set to false to disable console output.
})
end,
},
},
config = function()
require("pcode.user.dapui")
local js_based_languages = { "typescript", "javascript", "typescriptreact" }
for _, language in ipairs(js_based_languages) do
require("dap").configurations[language] = {
{
type = "pwa-node",
request = "launch",
name = "Launch file",
program = "${file}",
cwd = "${workspaceFolder}",
},
{
type = "pwa-node",
request = "attach",
name = "Attach",
processId = require("dap.utils").pick_process,
cwd = "${workspaceFolder}",
},
{
type = "pwa-chrome",
request = "launch",
name = 'Start Chrome with "localhost"',
url = "http://localhost:3000",
webRoot = "${workspaceFolder}",
userDataDir = "${workspaceFolder}/.vscode/vscode-chrome-debug-userdatadir",
},
}
end
end,
keys = {
{ "<leader>d", "", desc = "  Debug" },
{ "<leader>dt", "<cmd>lua require'dap'.toggle_breakpoint()<cr>", desc = "Toggle Breakpoint" },
{ "<leader>db", "<cmd>lua require'dap'.step_back()<cr>", desc = "Step Back" },
{ "<leader>dc", "<cmd>lua require'dap'.continue()<cr>", desc = "Continue" },
{ "<leader>dC", "<cmd>lua require'dap'.run_to_cursor()<cr>", desc = "Run To Cursor" },
{ "<leader>dd", "<cmd>lua require'dap'.disconnect()<cr>", desc = "Disconnect" },
{ "<leader>dg", "<cmd>lua require'dap'.session()<cr>", desc = "Get Session" },
{ "<leader>di", "<cmd>lua require'dap'.step_into()<cr>", desc = "Step Into" },
{ "<leader>do", "<cmd>lua require'dap'.step_over()<cr>", desc = "Step Over" },
{ "<leader>du", "<cmd>lua require'dap'.step_out()<cr>", desc = "Step Out" },
{ "<leader>dp", "<cmd>lua require'dap'.pause()<cr>", desc = "Pause" },
{ "<leader>dr", "<cmd>lua require'dap'.repl.toggle()<cr>", desc = "Toggle Repl" },
{ "<leader>ds", "<cmd>lua require'dap'.continue()<cr>", desc = "Start" },
{ "<leader>dq", "<cmd>lua require'dap'.close()<cr>", desc = "Quit" },
{ "<leader>dU", "<cmd>lua require'dapui'.toggle({reset = true})<cr>", desc = "Toggle UI" },
},
},
}
return M

View file

@ -0,0 +1,136 @@
return {
-- install treesitter
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "kotlin" })
end,
},
{
"williamboman/mason-lspconfig.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "kotlin_language_server" })
end,
},
{
"pojokcodeid/auto-conform.nvim",
event = "VeryLazy",
opts = function(_, opts)
opts.formatters_by_ft = opts.formatters_by_ft or {}
local package = "ktfmt"
vim.list_extend(opts.ensure_installed, { package })
opts.formatters_by_ft.kotlin = { package }
end,
},
{
"pojokcodeid/auto-lint.nvim",
optional = true,
opts = function(_, opts)
opts.linters_by_ft = opts.linters_by_ft or {}
vim.list_extend(opts.ensure_installed, { "ktlint" })
opts.linters_by_ft.kotlin = { "ktlint" }
end,
},
{
"mason.nvim",
opts = {
ensure_installed = { "kotlin-debug-adapter" },
},
},
{
"rcarriga/nvim-dap-ui",
lazy = true,
event = "BufRead",
dependencies = {
{ "mfussenegger/nvim-dap", lazy = true },
{ "nvim-neotest/nvim-nio", lazy = true },
},
opts = function()
require("pcode.user.dapui")
local dap = require("dap")
if not dap.adapters.kotlin then
dap.adapters.kotlin = {
type = "executable",
command = "kotlin-debug-adapter",
options = { auto_continue_if_many_stopped = false },
}
end
dap.configurations.kotlin = {
{
type = "kotlin",
request = "launch",
name = "This file",
-- may differ, when in doubt, whatever your project structure may be,
-- it has to correspond to the class file located at `build/classes/`
-- and of course you have to build before you debug
mainClass = function()
local root = vim.uv.cwd()
local fname = vim.api.nvim_buf_get_name(0)
fname = fname:gsub(root, "")
fname = fname:gsub("/app/src/main/kotlin/", "")
fname = fname:gsub(".kt", "Kt"):gsub("/", ".")
-- src/main/kotlin/websearch/Main.kt -> websearch.MainKt
return fname
end,
projectRoot = "${workspaceFolder}",
jsonLogFile = "",
enableJsonLogging = false,
},
{
-- Use this for unit tests
-- First, run
-- ./gradlew --info cleanTest test --debug-jvm
-- then attach the debugger to it
type = "kotlin",
request = "attach",
name = "Attach to debugging session",
port = 5005,
args = {},
projectRoot = vim.fn.getcwd,
hostName = "localhost",
timeout = 2000,
},
}
end,
keys = {
{ "<leader>d", "", desc = "  Debug" },
{ "<leader>dt", "<cmd>lua require'dap'.toggle_breakpoint()<cr>", desc = "Toggle Breakpoint" },
{ "<leader>db", "<cmd>lua require'dap'.step_back()<cr>", desc = "Step Back" },
{ "<leader>dc", "<cmd>lua require'dap'.continue()<cr>", desc = "Continue" },
{ "<leader>dC", "<cmd>lua require'dap'.run_to_cursor()<cr>", desc = "Run To Cursor" },
{ "<leader>dd", "<cmd>lua require'dap'.disconnect()<cr>", desc = "Disconnect" },
{ "<leader>dg", "<cmd>lua require'dap'.session()<cr>", desc = "Get Session" },
{ "<leader>di", "<cmd>lua require'dap'.step_into()<cr>", desc = "Step Into" },
{ "<leader>do", "<cmd>lua require'dap'.step_over()<cr>", desc = "Step Over" },
{ "<leader>du", "<cmd>lua require'dap'.step_out()<cr>", desc = "Step Out" },
{ "<leader>dp", "<cmd>lua require'dap'.pause()<cr>", desc = "Pause" },
{ "<leader>dr", "<cmd>lua require'dap'.repl.toggle()<cr>", desc = "Toggle Repl" },
{ "<leader>ds", "<cmd>lua require'dap'.continue()<cr>", desc = "Start" },
{ "<leader>dq", "<cmd>lua require'dap'.close()<cr>", desc = "Quit" },
{ "<leader>dU", "<cmd>lua require'dapui'.toggle({reset = true})<cr>", desc = "Toggle UI" },
-- setting cek
-- https://stackoverflow.com/questions/9356543/logging-while-testing-through-gradle
{ "<leader>T", "", desc = " Test" },
{ "<leader>Ta", "<cmd>terminal gradle test<cr>", desc = "Run All" },
{
"<leader>Tu",
function()
-- local current_word = vim.fn.expand("<cword>")
local current_word = ""
local input = vim.fn.getline(".")
current_word = all_trim((input:gsub("class", "")):gsub("{", "")) -- hilangkan bagian class
current_word = current_word:gsub("fun", "")
current_word = current_word:gsub("%(%)", "")
current_word = current_word:gsub("{", "")
current_word = current_word:gsub("@Test", "")
vim.cmd("terminal gradle test --tests *." .. all_trim(current_word))
end,
desc = "Run Under Cursor",
},
{ "<leader>rg", "<cmd>terminal<cr>gradle run<cr>", desc = "Run Gradle", mode = "n" },
},
},
}

View file

@ -0,0 +1,149 @@
return {
-- install treesitter
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "kotlin" })
end,
},
{
"williamboman/mason-lspconfig.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "kotlin_language_server" })
end,
},
{
"pojokcodeid/auto-conform.nvim",
event = "VeryLazy",
opts = function(_, opts)
opts.formatters_by_ft = opts.formatters_by_ft or {}
local package = "ktfmt"
vim.list_extend(opts.ensure_installed, { package })
opts.formatters_by_ft.kotlin = { package }
end,
},
{
"pojokcodeid/auto-lint.nvim",
optional = true,
opts = function(_, opts)
opts.linters_by_ft = opts.linters_by_ft or {}
vim.list_extend(opts.ensure_installed, { "ktlint" })
opts.linters_by_ft.kotlin = { "ktlint" }
end,
},
{
"mason.nvim",
opts = {
ensure_installed = { "kotlin-debug-adapter" },
},
},
{
"rcarriga/nvim-dap-ui",
lazy = true,
event = "BufRead",
dependencies = {
{ "mfussenegger/nvim-dap", lazy = true },
{ "nvim-neotest/nvim-nio", lazy = true },
},
opts = function()
require("pcode.user.dapui")
local dap = require("dap")
if not dap.adapters.kotlin then
dap.adapters.kotlin = {
type = "executable",
command = "kotlin-debug-adapter",
options = { auto_continue_if_many_stopped = false },
}
end
dap.configurations.kotlin = {
{
type = "kotlin",
request = "launch",
name = "This file",
-- may differ, when in doubt, whatever your project structure may be,
-- it has to correspond to the class file located at `build/classes/`
-- and of course you have to build before you debug
mainClass = function()
local root = vim.uv.cwd()
local fname = vim.api.nvim_buf_get_name(0)
fname = fname:gsub(root, "")
fname = fname:gsub("/app/src/main/kotlin/", "")
fname = fname:gsub(".kt", "Kt"):gsub("/", ".")
-- src/main/kotlin/websearch/Main.kt -> websearch.MainKt
return fname
end,
projectRoot = "${workspaceFolder}",
jsonLogFile = "",
enableJsonLogging = false,
},
{
-- Use this for unit tests
-- First, run
-- ./gradlew --info cleanTest test --debug-jvm
-- then attach the debugger to it
type = "kotlin",
request = "attach",
name = "Attach to debugging session",
port = 5005,
args = {},
projectRoot = vim.fn.getcwd,
hostName = "localhost",
timeout = 2000,
},
}
end,
keys = {
{ "<leader>d", "", desc = "  Debug" },
{ "<leader>dt", "<cmd>lua require'dap'.toggle_breakpoint()<cr>", desc = "Toggle Breakpoint" },
{ "<leader>db", "<cmd>lua require'dap'.step_back()<cr>", desc = "Step Back" },
{ "<leader>dc", "<cmd>lua require'dap'.continue()<cr>", desc = "Continue" },
{ "<leader>dC", "<cmd>lua require'dap'.run_to_cursor()<cr>", desc = "Run To Cursor" },
{ "<leader>dd", "<cmd>lua require'dap'.disconnect()<cr>", desc = "Disconnect" },
{ "<leader>dg", "<cmd>lua require'dap'.session()<cr>", desc = "Get Session" },
{ "<leader>di", "<cmd>lua require'dap'.step_into()<cr>", desc = "Step Into" },
{ "<leader>do", "<cmd>lua require'dap'.step_over()<cr>", desc = "Step Over" },
{ "<leader>du", "<cmd>lua require'dap'.step_out()<cr>", desc = "Step Out" },
{ "<leader>dp", "<cmd>lua require'dap'.pause()<cr>", desc = "Pause" },
{ "<leader>dr", "<cmd>lua require'dap'.repl.toggle()<cr>", desc = "Toggle Repl" },
{ "<leader>ds", "<cmd>lua require'dap'.continue()<cr>", desc = "Start" },
{ "<leader>dq", "<cmd>lua require'dap'.close()<cr>", desc = "Quit" },
{ "<leader>dU", "<cmd>lua require'dapui'.toggle({reset = true})<cr>", desc = "Toggle UI" },
-- setting cek
-- https://stackoverflow.com/questions/9356543/logging-while-testing-through-gradle
{ "<leader>T", "", desc = " Test" },
{ "<leader>Ta", "<cmd>terminal gradle test<cr>", desc = "Run All" },
{
"<leader>Tu",
function()
local function get_default_package()
local path = vim.fn.expand("%:p:h")
local project_root = vim.fn.getcwd()
local relative_path = path:sub(#project_root + 1)
relative_path = relative_path:gsub("app\\src\\test\\kotlin\\", "")
relative_path = relative_path:gsub("app/src/test/kotlin/", "")
relative_path = relative_path:gsub("\\", ".")
relative_path = relative_path:gsub("/", ".")
return relative_path:sub(2)
end
local curr_file = vim.fn.expand("%:t")
curr_file = curr_file:gsub("kt", "")
local current_word = ""
local input = vim.fn.getline(".")
current_word = all_trim((input:gsub("class", "")):gsub("{", "")) -- hilangkan bagian class
current_word = current_word:gsub("fun", "")
current_word = current_word:gsub("%(%)", "")
current_word = current_word:gsub("{", "")
current_word = current_word:gsub("@Test", "")
vim.cmd(
"terminal gradle test --tests " .. get_default_package() .. "." .. curr_file .. all_trim(current_word)
)
end,
desc = "Run Under Cursor",
},
{ "<leader>rg", "<cmd>terminal<cr>gradle run<cr>", desc = "Run Gradle", mode = "n" },
},
},
}

View file

@ -0,0 +1,102 @@
return {
{
"pojokcodeid/auto-conform.nvim",
event = "VeryLazy",
optional = true,
opts = function(_, opts)
vim.list_extend(opts.formatters, {
["markdown-toc"] = {
condition = function(_, ctx)
for _, line in ipairs(vim.api.nvim_buf_get_lines(ctx.buf, 0, -1, false)) do
if line:find("<!%-%- toc %-%->") then
return true
end
end
end,
},
["markdownlint-cli2"] = {
condition = function(_, ctx)
local diag = vim.tbl_filter(function(d)
return d.source == "markdownlint"
end, vim.diagnostic.get(ctx.buf))
return #diag > 0
end,
},
})
vim.list_extend(opts.formatters_by_ft, {
["markdown"] = { "prettier", "markdownlint-cli2", "markdown-toc" },
["markdown.mdx"] = { "prettier", "markdownlint-cli2", "markdown-toc" },
})
end,
},
{
"williamboman/mason.nvim",
opts = function(_, opts)
vim.list_extend(opts.ensure_installed, { "markdownlint-cli2", "markdown-toc" })
end,
},
{
"pojokcodeid/auto-lint.nvim",
event = "VeryLazy",
opts = function(_, opts)
vim.list_extend(opts.ensure_installed, { "markdownlint-cli2" })
end,
config = function(_, opts)
require("auto-lint").setup(opts)
end,
},
{
"williamboman/mason-lspconfig.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "marksman" })
end,
},
-- Markdown preview
{
"iamcco/markdown-preview.nvim",
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
build = function()
require("lazy").load({ plugins = { "markdown-preview.nvim" } })
vim.fn["mkdp#util#install"]()
end,
keys = {
{
"<leader>Cp",
ft = "markdown",
"<cmd>MarkdownPreviewToggle<cr>",
desc = "Markdown Preview",
},
},
config = function()
vim.cmd([[do FileType]])
end,
},
{
"MeanderingProgrammer/render-markdown.nvim",
opts = {
code = {
sign = false,
width = "block",
right_pad = 1,
},
heading = {
sign = false,
icons = {},
},
},
ft = { "markdown", "norg", "rmd", "org" },
config = function(_, opts)
require("render-markdown").setup(opts)
end,
keys = {
{ "<leader>C", "", desc = "  Markdown" },
{
"<leader>Cr",
"<cmd>RenderMarkdown<cr>",
desc = "Render Markdown",
},
},
},
}

View file

@ -0,0 +1,223 @@
local function is_laravel_project()
return vim.fn.isdirectory("app") == 1
and vim.fn.isdirectory("bootstrap") == 1
and vim.fn.isdirectory("config") == 1
and vim.fn.isdirectory("database") == 1
and vim.fn.isdirectory("routes") == 1
end
-- check parser php
-- local is_config = true
-- local parsers = require("nvim-treesitter.parsers").get_parser_configs()
-- if parsers.php ~= nil then
-- is_config = false
-- end
return {
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, {
"c",
"lua",
"vim",
"vimdoc",
"query",
"markdown",
"markdown_inline",
"html",
"php_only",
"php",
"bash",
"blade",
"json",
})
end,
config = function(_, opts)
local parser_config = require("nvim-treesitter.parsers").get_parser_configs()
parser_config.blade = {
install_info = {
url = "https://github.com/EmranMR/tree-sitter-blade",
files = { "src/parser.c" },
branch = "main",
},
filetype = "blade",
}
vim.filetype.add({
pattern = {
[".*%.blade%.php"] = "blade",
},
})
require("nvim-treesitter.configs").setup(opts)
end,
},
{
"williamboman/mason-lspconfig.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "intelephense", "stimulus_ls" })
end,
},
{
"pojokcodeid/auto-conform.nvim",
event = "VeryLazy",
opts = function(_, opts)
vim.list_extend(opts.ensure_installed, { "pretty-php", "blade-formatter" })
opts.formatters_by_ft.php = { "pretty-php" }
opts.formatters_by_ft.blade = { "blade-formatter" }
end,
},
{
"pojokcodeid/auto-lint.nvim",
event = "VeryLazy",
opts = function(_, opts)
vim.list_extend(opts.ensure_installed, { "phpcs" })
end,
config = function(_, opts)
require("auto-lint").setup(opts)
end,
},
{
"rcarriga/nvim-dap-ui",
lazy = true,
event = "BufRead",
dependencies = {
{ "mfussenegger/nvim-dap", lazy = true },
{ "nvim-neotest/nvim-nio", lazy = true },
{
"xdebug/vscode-php-debug",
version = "1.x",
build = "npm install && npm run build",
config = function()
require("dap.ext.vscode").load_launchjs()
end,
},
},
config = function()
require("pcode.user.dapui")
local dap = require("dap")
dap.adapters.php = {
type = "executable",
command = "node",
-- change this to where you build vscode-php-debug
args = { vim.fn.stdpath("data") .. "/lazy/vscode-php-debug/out/phpDebug.js" },
}
dap.configurations.php = {
-- to run php right from the editor
{
name = "run current script",
type = "php",
request = "launch",
port = 9003,
cwd = "${fileDirname}",
program = "${file}",
runtimeExecutable = "php",
},
-- to listen to any php call
{
name = "listen for Xdebug local",
type = "php",
request = "launch",
port = 9003,
},
-- to listen to php call in docker container
{
name = "listen for Xdebug docker",
type = "php",
request = "launch",
port = 9003,
-- this is where your file is in the container
pathMappings = {
["/opt/project"] = "${workspaceFolder}",
},
},
}
end,
keys = {
{ "<leader>d", "", desc = "  Debug" },
{ "<leader>dt", "<cmd>lua require'dap'.toggle_breakpoint()<cr>", desc = "Toggle Breakpoint" },
{ "<leader>db", "<cmd>lua require'dap'.step_back()<cr>", desc = "Step Back" },
{ "<leader>dc", "<cmd>lua require'dap'.continue()<cr>", desc = "Continue" },
{ "<leader>dC", "<cmd>lua require'dap'.run_to_cursor()<cr>", desc = "Run To Cursor" },
{ "<leader>dd", "<cmd>lua require'dap'.disconnect()<cr>", desc = "Disconnect" },
{ "<leader>dg", "<cmd>lua require'dap'.session()<cr>", desc = "Get Session" },
{ "<leader>di", "<cmd>lua require'dap'.step_into()<cr>", desc = "Step Into" },
{ "<leader>do", "<cmd>lua require'dap'.step_over()<cr>", desc = "Step Over" },
{ "<leader>du", "<cmd>lua require'dap'.step_out()<cr>", desc = "Step Out" },
{ "<leader>dp", "<cmd>lua require'dap'.pause()<cr>", desc = "Pause" },
{ "<leader>dr", "<cmd>lua require'dap'.repl.toggle()<cr>", desc = "Toggle Repl" },
{ "<leader>ds", "<cmd>lua require'dap'.continue()<cr>", desc = "Start" },
{ "<leader>dq", "<cmd>lua require'dap'.close()<cr>", desc = "Quit" },
{ "<leader>dU", "<cmd>lua require'dapui'.toggle({reset = true})<cr>", desc = "Toggle UI" },
},
},
{
"nvim-neotest/neotest",
dependencies = {
"antoinemadec/FixCursorHold.nvim",
"olimorris/neotest-phpunit",
"nvim-neotest/nvim-nio",
},
config = function()
require("neotest-phpunit")({
filter_dirs = { "vendor" },
})
require("neotest").setup({
adapters = {
require("neotest-phpunit"),
},
})
end,
-- stylua: ignore
keys = {
{ "<leader>T","",desc="  Test"},
{ "<leader>Tt", function() require("neotest").run.run(vim.fn.expand("%")) end, desc = "Run File" },
{ "<leader>Tr", function() require("neotest").run.run() end, desc = "Run Nearest" },
{ "<leader>TT", function() require("neotest").run.run(vim.loop.cwd()) end, desc = "Run All Test Files" },
{ "<leader>Tl", function() require("neotest").run.run_last() end, desc = "Run Last" },
{ "<Leader>Ts", function() require("neotest").summary.toggle() end, desc = "Toggle Summary" },
{ "<leader>To", function() require("neotest").output.open({ enter = true, auto_close = true }) end, desc = "Show Output" },
{ "<Leader>TO", function() require("neotest").output_panel.toggle() end, desc = "Toggle Output Panel" },
{ "<Leader>TS", function() require("neotest").run.stop() end, desc = "Stop" },
},
},
{
"mfussenegger/nvim-lint",
opts = function(_, opts)
opts.linters_by_ft = opts.linters_by_ft or {}
opts.linters_by_ft.php = { "phpcs" }
opts.linters_by_ft.blade = { "tlint" }
end,
config = function(_, opts)
require("lint").linters_by_ft = opts.linters_by_ft
end,
},
-- untuk case tertentu install ini
-- npm install -g tree-sitter-cli
{
"adalessa/laravel.nvim",
enabled = is_laravel_project(), -- pastikan membuka laravel project
-- version = "v2.2.1",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
"tpope/vim-dotenv",
"nvim-telescope/telescope.nvim",
"MunifTanjim/nui.nvim",
"kevinhwang91/promise-async",
},
cmd = { "Laravel" },
keys = {
{ "<leader>L", "", desc = " 󰫐 Laravel" },
{ "<leader>La", ":Laravel artisan<cr>" },
{ "<leader>Lr", ":Laravel routes<cr>" },
{ "<leader>Lm", ":Laravel related<cr>" },
},
event = { "VeryLazy" },
opts = {},
config = true,
},
}

View file

@ -0,0 +1,57 @@
return {
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "prisma" })
end,
},
{
"williamboman/mason-lspconfig.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, { "prismals" })
vim.cmd([[
autocmd BufWritePost *.prisma silent! execute "!npx prisma format"
]])
end,
keys = {
{ "<leader>p", "", desc = "  Prisma" },
{
"<leader>pf",
function()
vim.cmd("execute '!npx prisma format'")
end,
desc = "Prisma Format",
},
{
"<leader>pm",
function()
vim.cmd("execute '!npx prisma init --datasource-provider mysql'")
end,
desc = "init MySQL",
},
{
"<leader>pp",
function()
vim.cmd("execute '!npx prisma init --datasource-provider postgresql'")
end,
desc = "init postgresql",
},
{
"<leader>pe",
function()
vim.cmd("execute '!npx prisma migrate dev --name init'")
end,
desc = "Migrate",
},
{
"<leader>ps",
function()
vim.cmd("terminal npx prisma studio")
end,
desc = "npx prisma Studio",
},
},
},
}

Some files were not shown because too many files have changed in this diff Show more