- commit
- 4658db9
- parent
- 6c38906
- author
- Eric Bower
- date
- 2023-04-11 17:40:50 +0000 UTC
feat: search a database of neovim configs (#297)
16 files changed,
+4726,
-54
M
Makefile
+4,
-0
1@@ -6,9 +6,12 @@ node_modules
2 .eslintcache
3 build
4 data/db.json
5+data/db-config.json
6 data/markdown.json
7+data/markdown-config.json
8 data/html.json
9 data/scrape.json
10+data/scrape-config.json
11 .direnv
12 gha-creds-*
13 static/*.html
14@@ -16,3 +19,4 @@ static/plugin/
15 static/about/
16 static/created/
17 static/updated/
18+static/c/
M
Makefile
+13,
-1
1@@ -6,7 +6,15 @@ resource:
2 deno run --allow-write src/scripts/resource.ts
3 .PHONY: resource
4
5-download:
6+resource-config:
7+ deno run --allow-write src/scripts/resource.ts config
8+.PHONY: resource-config
9+
10+download-config:
11+ deno run --allow-env --allow-write --allow-net src/scripts/scrape-config.ts
12+.PHONY: download-config
13+
14+download: download-config
15 deno run --allow-write --allow-net src/scripts/scrape.ts
16 .PHONY: download
17
18@@ -35,6 +43,7 @@ clean:
19 rm -rf static/about
20 rm -rf static/created
21 rm -rf static/updated
22+ rm -rf static/c
23 .PHONY: clean
24
25 build: clean
26@@ -57,3 +66,6 @@ format:
27 test:
28 deno lint
29 .PHONY: test
30+
31+config: download-config process html
32+.PHONY: configs
+12,
-0
1@@ -18,6 +18,18 @@ make resource
2 This command will step through the requirements for adding a resource to the
3 site.
4
5+## Want to submit a config?
6+
7+If you'd like to suggest a config to add to `neovimcraft.com/c` then feel free to
8+submit a PR after running the following command:
9+
10+```bash
11+make resource-config
12+```
13+
14+This command will step through the requirements for adding a resource to the
15+site.
16+
17 ## nvim.sh
18
19 Want to query neovimcraft from the terminal?
+3,
-0
1@@ -0,0 +1,3 @@
2+{
3+ "resources": []
4+}
+4291,
-0
1@@ -0,0 +1,4291 @@
2+{
3+ "resources": [
4+ {
5+ "type": "github",
6+ "username": "0xYYY",
7+ "repo": "dotfiles",
8+ "tags": [
9+ "dotfiles",
10+ "golang",
11+ "macos",
12+ "neovim",
13+ "python",
14+ "rust",
15+ "solidity",
16+ "tmux",
17+ "typescript",
18+ "zsh"
19+ ]
20+ },
21+ {
22+ "type": "github",
23+ "username": "22a",
24+ "repo": "dotfiles",
25+ "tags": [
26+ "dotfiles",
27+ "iterm2",
28+ "macos",
29+ "neovim",
30+ "tmux",
31+ "zplug",
32+ "zsh"
33+ ]
34+ },
35+ {
36+ "type": "github",
37+ "username": "2nthony",
38+ "repo": "dotfiles",
39+ "tags": [
40+ "dotfiles",
41+ "ide",
42+ "lua",
43+ "lunarvim",
44+ "neovim",
45+ "nvim",
46+ "vim",
47+ "vim-ide",
48+ "vimrc",
49+ "vue",
50+ "web-ide",
51+ "zellij"
52+ ]
53+ },
54+ {
55+ "type": "github",
56+ "username": "Abdullah-coder2013",
57+ "repo": "CoolNeovimSetup",
58+ "tags": [
59+ "config",
60+ "configuration",
61+ "neovim"
62+ ]
63+ },
64+ {
65+ "type": "github",
66+ "username": "abiosoft",
67+ "repo": "dotfiles",
68+ "tags": [
69+ "dotfiles",
70+ "i3",
71+ "neovim",
72+ "tmux",
73+ "zsh"
74+ ]
75+ },
76+ {
77+ "type": "github",
78+ "username": "abyo",
79+ "repo": "nvim-windows",
80+ "tags": [
81+ "lua",
82+ "neovim",
83+ "windows",
84+ "windows-10"
85+ ]
86+ },
87+ {
88+ "type": "github",
89+ "username": "abzcoding",
90+ "repo": "nvim",
91+ "tags": []
92+ },
93+ {
94+ "type": "github",
95+ "username": "adibis",
96+ "repo": "nvim",
97+ "tags": [
98+ "neovim",
99+ "nvim",
100+ "vim"
101+ ]
102+ },
103+ {
104+ "type": "github",
105+ "username": "AdiCahyaSaputra",
106+ "repo": "my-neovim-setup",
107+ "tags": []
108+ },
109+ {
110+ "type": "github",
111+ "username": "adoyle-h",
112+ "repo": "neovim-config",
113+ "tags": [
114+ "config",
115+ "lua",
116+ "neovim",
117+ "nvim",
118+ "vim"
119+ ]
120+ },
121+ {
122+ "type": "github",
123+ "username": "adoyle-h",
124+ "repo": "one.nvim",
125+ "tags": [
126+ "lua",
127+ "neovim",
128+ "nvim",
129+ "nvim-config",
130+ "nvim-configs",
131+ "nvim-configuration",
132+ "nvim-settings",
133+ "nvim-setup",
134+ "nvimrc"
135+ ]
136+ },
137+ {
138+ "type": "github",
139+ "username": "af",
140+ "repo": "dotfiles",
141+ "tags": [
142+ "dotfiles",
143+ "hammerspoon",
144+ "neovim",
145+ "tmux-configs",
146+ "vim-configs"
147+ ]
148+ },
149+ {
150+ "type": "github",
151+ "username": "afnanenayet",
152+ "repo": "nvim-dotfiles",
153+ "tags": [
154+ "config",
155+ "configuration-files",
156+ "dein",
157+ "deoplete",
158+ "neovim",
159+ "vim"
160+ ]
161+ },
162+ {
163+ "type": "github",
164+ "username": "afshinm",
165+ "repo": "neovim-config",
166+ "tags": [
167+ "neovim",
168+ "neovim-configuration",
169+ "neovim-dotfiles"
170+ ]
171+ },
172+ {
173+ "type": "github",
174+ "username": "AGou-ops",
175+ "repo": "dotfiles",
176+ "tags": [
177+ "golang",
178+ "lua",
179+ "markdown",
180+ "neovim",
181+ "neovim-dotfiles",
182+ "vim-script",
183+ "viml",
184+ "vimrc"
185+ ]
186+ },
187+ {
188+ "type": "github",
189+ "username": "ahonn",
190+ "repo": "dotfiles",
191+ "tags": [
192+ "dotfiles",
193+ "fish",
194+ "hammerspoon",
195+ "kitty",
196+ "neovim",
197+ "rime",
198+ "tmux",
199+ "vimrc"
200+ ]
201+ },
202+ {
203+ "type": "github",
204+ "username": "albingroen",
205+ "repo": "quick.nvim",
206+ "tags": [
207+ "coc",
208+ "lua",
209+ "neovim",
210+ "nvim",
211+ "vim"
212+ ]
213+ },
214+ {
215+ "type": "github",
216+ "username": "Alex222222222222",
217+ "repo": "NeovimSetup",
218+ "tags": []
219+ },
220+ {
221+ "type": "github",
222+ "username": "AlexanderHOtt",
223+ "repo": "neovim-config",
224+ "tags": []
225+ },
226+ {
227+ "type": "github",
228+ "username": "alexanderjeurissen",
229+ "repo": "dotfiles",
230+ "tags": [
231+ "alacritty",
232+ "dotfiles",
233+ "fish",
234+ "fish-shell",
235+ "neovim",
236+ "neovim-dotfiles",
237+ "neovim-lua",
238+ "tmux",
239+ "tmux-configuration"
240+ ]
241+ },
242+ {
243+ "type": "github",
244+ "username": "alexlafroscia",
245+ "repo": "dotfiles",
246+ "tags": [
247+ "dotfiles",
248+ "neovim",
249+ "tmux",
250+ "vim"
251+ ]
252+ },
253+ {
254+ "type": "github",
255+ "username": "AlexVKO",
256+ "repo": "VimKO",
257+ "tags": [
258+ "devops",
259+ "fullstack",
260+ "neovim",
261+ "neovim-dotfiles",
262+ "rails",
263+ "ruby",
264+ "vim",
265+ "vimrc"
266+ ]
267+ },
268+ {
269+ "type": "github",
270+ "username": "AlexvZyl",
271+ "repo": ".dotfiles",
272+ "tags": [
273+ "arch",
274+ "archlinux",
275+ "dotfiles",
276+ "dotfiles-linux",
277+ "i3",
278+ "neovim",
279+ "nord",
280+ "nordic"
281+ ]
282+ },
283+ {
284+ "type": "github",
285+ "username": "Allaman",
286+ "repo": "nvim",
287+ "tags": [
288+ "configuration",
289+ "devops",
290+ "dotfiles",
291+ "golang",
292+ "ide",
293+ "lua",
294+ "markdown",
295+ "neovim",
296+ "nvim",
297+ "python",
298+ "texteditor",
299+ "vim",
300+ "workflow"
301+ ]
302+ },
303+ {
304+ "type": "github",
305+ "username": "alohaia",
306+ "repo": "nvimcfg",
307+ "tags": [
308+ "lua",
309+ "neovim",
310+ "nvim",
311+ "nvim-configs",
312+ "nvim-configuration",
313+ "nvim-lsp",
314+ "nvim-lua",
315+ "nvim-telescope",
316+ "nvim-treesitter",
317+ "nvimrc",
318+ "vim"
319+ ]
320+ },
321+ {
322+ "type": "github",
323+ "username": "alpha2phi",
324+ "repo": "neovim-for-beginner",
325+ "tags": []
326+ },
327+ {
328+ "type": "github",
329+ "username": "AlphaKeks",
330+ "repo": "how2nvim",
331+ "tags": [
332+ "lua",
333+ "neovim",
334+ "neovim-config",
335+ "neovim-configuration",
336+ "neovim-lua"
337+ ]
338+ },
339+ {
340+ "type": "github",
341+ "username": "alphastrata",
342+ "repo": "neovim-config",
343+ "tags": []
344+ },
345+ {
346+ "type": "github",
347+ "username": "alwialways",
348+ "repo": "myNeovim",
349+ "tags": []
350+ },
351+ {
352+ "type": "github",
353+ "username": "amirhossein-ka",
354+ "repo": "nvim",
355+ "tags": [
356+ "neovim",
357+ "nvim"
358+ ]
359+ },
360+ {
361+ "type": "github",
362+ "username": "amy-juan-li",
363+ "repo": "nvim-lua",
364+ "tags": [
365+ "lua",
366+ "neovim"
367+ ]
368+ },
369+ {
370+ "type": "github",
371+ "username": "AndrewShukhtin",
372+ "repo": "neovim",
373+ "tags": []
374+ },
375+ {
376+ "type": "github",
377+ "username": "angelofallars",
378+ "repo": "dotfiles",
379+ "tags": [
380+ "bspwm",
381+ "dotfiles",
382+ "gruvbox",
383+ "linux",
384+ "neovim",
385+ "tmux",
386+ "vim"
387+ ]
388+ },
389+ {
390+ "type": "github",
391+ "username": "anthdm",
392+ "repo": ".nvim",
393+ "tags": []
394+ },
395+ {
396+ "type": "github",
397+ "username": "appelgriebsch",
398+ "repo": "Nv",
399+ "tags": []
400+ },
401+ {
402+ "type": "github",
403+ "username": "ardubev16",
404+ "repo": "renso.nvim",
405+ "tags": []
406+ },
407+ {
408+ "type": "github",
409+ "username": "arnau",
410+ "repo": "vigor",
411+ "tags": [
412+ "config",
413+ "neovim",
414+ "vim"
415+ ]
416+ },
417+ {
418+ "type": "github",
419+ "username": "arsham",
420+ "repo": "fzfmania.nvim",
421+ "tags": [
422+ "fzf",
423+ "lua",
424+ "neovim",
425+ "neovim-lua-plugin",
426+ "neovim-plugin"
427+ ]
428+ },
429+ {
430+ "type": "github",
431+ "username": "arsham",
432+ "repo": "shark",
433+ "tags": [
434+ "fzf",
435+ "lsp",
436+ "neovim",
437+ "neovim-config",
438+ "tree-sitter"
439+ ]
440+ },
441+ {
442+ "type": "github",
443+ "username": "arturgoms",
444+ "repo": "nvim",
445+ "tags": []
446+ },
447+ {
448+ "type": "github",
449+ "username": "aserowy",
450+ "repo": "neocode",
451+ "tags": [
452+ "lua",
453+ "neovim",
454+ "neovim-configuration",
455+ "neovim-dotfiles",
456+ "neovim-lua",
457+ "nvim",
458+ "nvim-configs",
459+ "nvim-settings",
460+ "vscode",
461+ "vscode-configs",
462+ "vscode-settings"
463+ ]
464+ },
465+ {
466+ "type": "github",
467+ "username": "asgeo1",
468+ "repo": "neovim-minimal-lsp-setup",
469+ "tags": []
470+ },
471+ {
472+ "type": "github",
473+ "username": "AsianKoala",
474+ "repo": "nvim",
475+ "tags": []
476+ },
477+ {
478+ "type": "github",
479+ "username": "askfiy",
480+ "repo": "nvim",
481+ "tags": [
482+ "config",
483+ "ide",
484+ "lua",
485+ "neovim",
486+ "nvim"
487+ ]
488+ },
489+ {
490+ "type": "github",
491+ "username": "AstroNvim",
492+ "repo": "AstroNvim",
493+ "tags": [
494+ "astronvim",
495+ "astrovim",
496+ "ide",
497+ "lua",
498+ "neovim",
499+ "neovim-config",
500+ "neovim-configuration",
501+ "neovim-lua",
502+ "neovim-setup",
503+ "nvim",
504+ "vim"
505+ ]
506+ },
507+ {
508+ "type": "github",
509+ "username": "atticusmatticus",
510+ "repo": "nvim",
511+ "tags": []
512+ },
513+ {
514+ "type": "github",
515+ "username": "Avimitin",
516+ "repo": "nvim",
517+ "tags": [
518+ "dotfile",
519+ "dotfiles",
520+ "editor",
521+ "ide",
522+ "linux",
523+ "lua",
524+ "neovim",
525+ "neovim-config",
526+ "nvim",
527+ "nvim-cmp",
528+ "nvim-config",
529+ "telescope",
530+ "vim",
531+ "vimrc",
532+ "vscode"
533+ ]
534+ },
535+ {
536+ "type": "github",
537+ "username": "awray3",
538+ "repo": "dotfiles-neovim",
539+ "tags": [
540+ "neovim"
541+ ]
542+ },
543+ {
544+ "type": "github",
545+ "username": "aymericbeaumet",
546+ "repo": "dotfiles",
547+ "tags": [
548+ "dotfiles",
549+ "git",
550+ "neovim",
551+ "tmux",
552+ "zsh"
553+ ]
554+ },
555+ {
556+ "type": "github",
557+ "username": "ayoisaiah",
558+ "repo": "dotfiles",
559+ "tags": [
560+ "chezmoi",
561+ "dotfiles",
562+ "fish",
563+ "git",
564+ "neovim",
565+ "ubuntu",
566+ "vim"
567+ ]
568+ },
569+ {
570+ "type": "github",
571+ "username": "b0o",
572+ "repo": "nvim-conf",
573+ "tags": [
574+ "dotfiles",
575+ "neovim",
576+ "neovim-config",
577+ "neovim-configuration",
578+ "neovim-dotfiles",
579+ "nvim",
580+ "vim",
581+ "vim-conf",
582+ "vim-configuration",
583+ "vim-dotfiles",
584+ "vimrc"
585+ ]
586+ },
587+ {
588+ "type": "github",
589+ "username": "bancast",
590+ "repo": "neovim",
591+ "tags": []
592+ },
593+ {
594+ "type": "github",
595+ "username": "beauwilliams",
596+ "repo": "Dotfiles",
597+ "tags": [
598+ "bash",
599+ "bash-script",
600+ "bat",
601+ "dotfiles",
602+ "fzf",
603+ "fzf-command",
604+ "fzf-scripts",
605+ "neovim",
606+ "treesitter",
607+ "vim",
608+ "vimrc",
609+ "zsh",
610+ "zshrc",
611+ "zshrc-configs"
612+ ]
613+ },
614+ {
615+ "type": "github",
616+ "username": "beauwilliams",
617+ "repo": "statusline.lua",
618+ "tags": [
619+ "lua",
620+ "neovim",
621+ "nvim",
622+ "statusline",
623+ "tabline",
624+ "vim"
625+ ]
626+ },
627+ {
628+ "type": "github",
629+ "username": "beeender",
630+ "repo": "Comrade",
631+ "tags": [
632+ "deoplete-source",
633+ "neovim-plugin"
634+ ]
635+ },
636+ {
637+ "type": "github",
638+ "username": "beeender",
639+ "repo": "ComradeNeovim",
640+ "tags": []
641+ },
642+ {
643+ "type": "github",
644+ "username": "benbrastmckie",
645+ "repo": ".config",
646+ "tags": []
647+ },
648+ {
649+ "type": "github",
650+ "username": "benmaia",
651+ "repo": "neovim",
652+ "tags": [
653+ "neovim",
654+ "nvim",
655+ "setup",
656+ "vim",
657+ "vimrc"
658+ ]
659+ },
660+ {
661+ "type": "github",
662+ "username": "bigeagle",
663+ "repo": "neovim-config",
664+ "tags": []
665+ },
666+ {
667+ "type": "github",
668+ "username": "bitterteasweetorange",
669+ "repo": "nvim",
670+ "tags": [
671+ "neovim-configuration"
672+ ]
673+ },
674+ {
675+ "type": "github",
676+ "username": "Blacksuan19",
677+ "repo": "init.nvim",
678+ "tags": [
679+ "asynchronous",
680+ "coc",
681+ "fzf",
682+ "ide-features",
683+ "keyboard-shortcuts",
684+ "liquid",
685+ "neovim",
686+ "nvim",
687+ "nvim-settings",
688+ "prettier",
689+ "vim-script",
690+ "vimrc"
691+ ]
692+ },
693+ {
694+ "type": "github",
695+ "username": "blueyed",
696+ "repo": "dotfiles",
697+ "tags": []
698+ },
699+ {
700+ "type": "github",
701+ "username": "bluz71",
702+ "repo": "dotfiles",
703+ "tags": [
704+ "bash",
705+ "dotfiles",
706+ "git",
707+ "neovim",
708+ "tmux",
709+ "vim"
710+ ]
711+ },
712+ {
713+ "type": "github",
714+ "username": "boudra",
715+ "repo": "dotfiles",
716+ "tags": [
717+ "dotfiles",
718+ "kitty",
719+ "neovim",
720+ "tmux"
721+ ]
722+ },
723+ {
724+ "type": "github",
725+ "username": "brainfucksec",
726+ "repo": "neovim-lua",
727+ "tags": [
728+ "dotfiles",
729+ "ide",
730+ "kiss",
731+ "lua",
732+ "neovim",
733+ "neovim-config",
734+ "neovim-configuration",
735+ "neovim-dotfiles",
736+ "neovim-lua",
737+ "nvim",
738+ "nvim-configs",
739+ "nvim-lua",
740+ "vim",
741+ "vimrc"
742+ ]
743+ },
744+ {
745+ "type": "github",
746+ "username": "BYT0723",
747+ "repo": "nvim",
748+ "tags": []
749+ },
750+ {
751+ "type": "github",
752+ "username": "CallumHoward",
753+ "repo": "dotfiles",
754+ "tags": []
755+ },
756+ {
757+ "type": "github",
758+ "username": "Cesar-Brandon",
759+ "repo": "nvim-setup-web",
760+ "tags": [
761+ "neovim-config"
762+ ]
763+ },
764+ {
765+ "type": "github",
766+ "username": "chadcat7",
767+ "repo": "kodo",
768+ "tags": [
769+ "aesthetic",
770+ "dotfiles",
771+ "ide",
772+ "neovim",
773+ "neovim-config",
774+ "neovim-configs",
775+ "neovim-configuration",
776+ "neovim-lua",
777+ "nvim",
778+ "rice",
779+ "vim"
780+ ]
781+ },
782+ {
783+ "type": "github",
784+ "username": "chanchann",
785+ "repo": "cc.vim",
786+ "tags": []
787+ },
788+ {
789+ "type": "github",
790+ "username": "CharlesChiuGit",
791+ "repo": "nvimdots.lua",
792+ "tags": [
793+ "dotfiles",
794+ "editor",
795+ "foss",
796+ "ide",
797+ "lua",
798+ "neovim",
799+ "neovim-config",
800+ "neovim-configuration",
801+ "neovim-dotfiles",
802+ "neovim-lua",
803+ "neovim-plugin",
804+ "neovim-setup",
805+ "nvim",
806+ "nvim-configs",
807+ "nvimdots",
808+ "open-source",
809+ "vim",
810+ "vimrc"
811+ ]
812+ },
813+ {
814+ "type": "github",
815+ "username": "CharlesGueunet",
816+ "repo": "vimmic",
817+ "tags": [
818+ "neovim",
819+ "neovim-conf",
820+ "vim",
821+ "vim-configuration",
822+ "vimrc"
823+ ]
824+ },
825+ {
826+ "type": "github",
827+ "username": "chiroptical",
828+ "repo": "neovim-setup",
829+ "tags": []
830+ },
831+ {
832+ "type": "github",
833+ "username": "ChristianChiarulli",
834+ "repo": "nvim",
835+ "tags": []
836+ },
837+ {
838+ "type": "github",
839+ "username": "Civitasv",
840+ "repo": "runvim",
841+ "tags": [
842+ "configuration",
843+ "fast",
844+ "functional",
845+ "lua",
846+ "neovim"
847+ ]
848+ },
849+ {
850+ "type": "github",
851+ "username": "codeaholicguy",
852+ "repo": "dotfiles",
853+ "tags": [
854+ "dotfiles",
855+ "javascript",
856+ "neovim",
857+ "tmux",
858+ "vim",
859+ "vimrc",
860+ "zsh",
861+ "zshrc"
862+ ]
863+ },
864+ {
865+ "type": "github",
866+ "username": "codicocodes",
867+ "repo": "dotfiles",
868+ "tags": []
869+ },
870+ {
871+ "type": "github",
872+ "username": "ColeWalker",
873+ "repo": "nvim-config",
874+ "tags": []
875+ },
876+ {
877+ "type": "github",
878+ "username": "CosmicNvim",
879+ "repo": "CosmicNvim",
880+ "tags": [
881+ "dotfiles",
882+ "hacktoberfest2021",
883+ "ide",
884+ "javascript",
885+ "lua",
886+ "neovim",
887+ "neovim-config",
888+ "neovim-configuration",
889+ "neovim-dotfiles",
890+ "neovim-lua",
891+ "react",
892+ "svelte",
893+ "telescope",
894+ "typescript",
895+ "vim",
896+ "vimrc",
897+ "vscode",
898+ "vue"
899+ ]
900+ },
901+ {
902+ "type": "github",
903+ "username": "crivotz",
904+ "repo": "nv-ide",
905+ "tags": [
906+ "lua",
907+ "neovim",
908+ "neovim-configuration",
909+ "nvim-compe",
910+ "vim-plugins"
911+ ]
912+ },
913+ {
914+ "type": "github",
915+ "username": "ctaylo21",
916+ "repo": "jarvis",
917+ "tags": [
918+ "denite",
919+ "dotfiles",
920+ "fzf",
921+ "homebrew",
922+ "ide",
923+ "iterm2",
924+ "javascript",
925+ "macos",
926+ "neovim",
927+ "osx",
928+ "osx-dotfiles",
929+ "react",
930+ "ripgrep",
931+ "tmux",
932+ "typescript",
933+ "vim",
934+ "zsh"
935+ ]
936+ },
937+ {
938+ "type": "github",
939+ "username": "cybergsus",
940+ "repo": "neovim-setup",
941+ "tags": []
942+ },
943+ {
944+ "type": "github",
945+ "username": "dahlia",
946+ "repo": "nvimrc",
947+ "tags": [
948+ "config",
949+ "neovim",
950+ "viml",
951+ "vimrc"
952+ ]
953+ },
954+ {
955+ "type": "github",
956+ "username": "dangngo",
957+ "repo": "neovim-config",
958+ "tags": []
959+ },
960+ {
961+ "type": "github",
962+ "username": "danknil",
963+ "repo": "nvim-dotfiles",
964+ "tags": []
965+ },
966+ {
967+ "type": "github",
968+ "username": "danymat",
969+ "repo": "champagne",
970+ "tags": []
971+ },
972+ {
973+ "type": "github",
974+ "username": "dapc11",
975+ "repo": "dnvim",
976+ "tags": [
977+ "lua",
978+ "neovim",
979+ "nvim"
980+ ]
981+ },
982+ {
983+ "type": "github",
984+ "username": "darko-mesaros",
985+ "repo": "nvim",
986+ "tags": []
987+ },
988+ {
989+ "type": "github",
990+ "username": "datwaft",
991+ "repo": "nvim.conf",
992+ "tags": [
993+ "dotfiles",
994+ "fennel",
995+ "hotpot",
996+ "lazy",
997+ "lisp",
998+ "neovim",
999+ "neovim-configuration"
1000+ ]
1001+ },
1002+ {
1003+ "type": "github",
1004+ "username": "daynin",
1005+ "repo": "dotfiles",
1006+ "tags": [
1007+ "dotfiles",
1008+ "lightweight",
1009+ "neovim",
1010+ "tmux",
1011+ "vim"
1012+ ]
1013+ },
1014+ {
1015+ "type": "github",
1016+ "username": "dbalatero",
1017+ "repo": "dotfiles",
1018+ "tags": [
1019+ "git",
1020+ "hammerspoon",
1021+ "hammerspoon-configuration",
1022+ "hammerspoon-dotfiles",
1023+ "neovim",
1024+ "neovim-dotfiles",
1025+ "tmux",
1026+ "vim",
1027+ "vim-configuration",
1028+ "zshrc"
1029+ ]
1030+ },
1031+ {
1032+ "type": "github",
1033+ "username": "ddrscott",
1034+ "repo": "config-nvim",
1035+ "tags": [
1036+ "neovim",
1037+ "vimrc"
1038+ ]
1039+ },
1040+ {
1041+ "type": "github",
1042+ "username": "DinkyTrady",
1043+ "repo": "nvim",
1044+ "tags": []
1045+ },
1046+ {
1047+ "type": "github",
1048+ "username": "DiogoSantoss",
1049+ "repo": "nvim-config",
1050+ "tags": []
1051+ },
1052+ {
1053+ "type": "github",
1054+ "username": "disrupted",
1055+ "repo": "dotfiles",
1056+ "tags": [
1057+ "dotfiles",
1058+ "neovim",
1059+ "neovim-configuration",
1060+ "neovim-dotfiles",
1061+ "nvim-lua",
1062+ "powerlevel10k",
1063+ "terminal",
1064+ "tmux-conf",
1065+ "vim-configuration",
1066+ "vimrc",
1067+ "weechat-irc",
1068+ "zinit",
1069+ "zsh",
1070+ "zshrc"
1071+ ]
1072+ },
1073+ {
1074+ "type": "github",
1075+ "username": "doitsu2014",
1076+ "repo": "neovim-setup",
1077+ "tags": []
1078+ },
1079+ {
1080+ "type": "github",
1081+ "username": "doom-neovim",
1082+ "repo": "doom-nvim",
1083+ "tags": [
1084+ "doom-nvim",
1085+ "hacktoberfest",
1086+ "lua",
1087+ "neovim",
1088+ "neovim-configuration",
1089+ "neovim-lsp",
1090+ "neovim-lua"
1091+ ]
1092+ },
1093+ {
1094+ "type": "github",
1095+ "username": "dpretet",
1096+ "repo": "dotfiles",
1097+ "tags": [
1098+ "ctags",
1099+ "dotfiles",
1100+ "git",
1101+ "linux",
1102+ "neovim",
1103+ "shell",
1104+ "tmux",
1105+ "vim",
1106+ "zsh"
1107+ ]
1108+ },
1109+ {
1110+ "type": "github",
1111+ "username": "dragove",
1112+ "repo": "nvim",
1113+ "tags": [
1114+ "lua",
1115+ "neovim",
1116+ "vim"
1117+ ]
1118+ },
1119+ {
1120+ "type": "github",
1121+ "username": "drahosp",
1122+ "repo": "dotfiles",
1123+ "tags": []
1124+ },
1125+ {
1126+ "type": "github",
1127+ "username": "DrakeAxelrod",
1128+ "repo": "nvim",
1129+ "tags": []
1130+ },
1131+ {
1132+ "type": "github",
1133+ "username": "dtr2300",
1134+ "repo": "nvim",
1135+ "tags": []
1136+ },
1137+ {
1138+ "type": "github",
1139+ "username": "echasnovski",
1140+ "repo": "nvim",
1141+ "tags": [
1142+ "lua",
1143+ "neovim",
1144+ "neovim-dotfiles",
1145+ "vim"
1146+ ]
1147+ },
1148+ {
1149+ "type": "github",
1150+ "username": "ecosse3",
1151+ "repo": "dotfiles",
1152+ "tags": [
1153+ "arch",
1154+ "dotfiles",
1155+ "linux",
1156+ "manjaro",
1157+ "neovim",
1158+ "rofi",
1159+ "zsh"
1160+ ]
1161+ },
1162+ {
1163+ "type": "github",
1164+ "username": "ecosse3",
1165+ "repo": "nvim",
1166+ "tags": [
1167+ "dotfiles",
1168+ "frontend",
1169+ "neovim",
1170+ "nvim",
1171+ "reactjs",
1172+ "vim"
1173+ ]
1174+ },
1175+ {
1176+ "type": "github",
1177+ "username": "editor-bootstrap",
1178+ "repo": "vim-bootstrap",
1179+ "tags": [
1180+ "bootstrap",
1181+ "dotfiles",
1182+ "editor-bootstrap",
1183+ "hackertoberfest",
1184+ "hacktoberfest",
1185+ "neovim",
1186+ "nvim",
1187+ "starter-template",
1188+ "vim",
1189+ "vim-bootstrap",
1190+ "vim-configuration",
1191+ "vimrc",
1192+ "vimrc-configuration"
1193+ ]
1194+ },
1195+ {
1196+ "type": "github",
1197+ "username": "edr3x",
1198+ "repo": ".dotfiles",
1199+ "tags": [
1200+ "alacritty-config",
1201+ "awesomewm",
1202+ "dotfiles",
1203+ "fish-shell",
1204+ "lua",
1205+ "neovim",
1206+ "rofi",
1207+ "shell-script",
1208+ "starship-prompt",
1209+ "tmux"
1210+ ]
1211+ },
1212+ {
1213+ "type": "github",
1214+ "username": "egberts",
1215+ "repo": "vim-syntax-bind-named",
1216+ "tags": [
1217+ "bind",
1218+ "bind9",
1219+ "bind9-configuration",
1220+ "bind9-daemon",
1221+ "bind9-delegated-zones",
1222+ "bind9-statistics",
1223+ "bind9-views",
1224+ "isc-bind-server",
1225+ "named",
1226+ "neovim",
1227+ "neovim-conf",
1228+ "neovim-config",
1229+ "neovim-configuration",
1230+ "neovim-plugin",
1231+ "vim",
1232+ "vim-syntax",
1233+ "vim8"
1234+ ]
1235+ },
1236+ {
1237+ "type": "github",
1238+ "username": "eggtoopain",
1239+ "repo": "Neovim-Configuration-Tutorial",
1240+ "tags": []
1241+ },
1242+ {
1243+ "type": "github",
1244+ "username": "eikenb",
1245+ "repo": "acp",
1246+ "tags": []
1247+ },
1248+ {
1249+ "type": "github",
1250+ "username": "elairavi",
1251+ "repo": "luavim",
1252+ "tags": [
1253+ "code-editor",
1254+ "lua",
1255+ "neovim",
1256+ "neovim-configuration",
1257+ "neovim-dotfiles",
1258+ "neovim-lua",
1259+ "nvim",
1260+ "nvim-configs",
1261+ "text-editor",
1262+ "vim"
1263+ ]
1264+ },
1265+ {
1266+ "type": "github",
1267+ "username": "elken",
1268+ "repo": "nvim",
1269+ "tags": []
1270+ },
1271+ {
1272+ "type": "github",
1273+ "username": "ellisonleao",
1274+ "repo": "neovimfiles",
1275+ "tags": [
1276+ "config",
1277+ "lsp",
1278+ "lspsaga",
1279+ "lua",
1280+ "lualine",
1281+ "neovim",
1282+ "neovimfiles",
1283+ "nvim",
1284+ "packer",
1285+ "telescope",
1286+ "tpope",
1287+ "vim",
1288+ "vimfiles"
1289+ ]
1290+ },
1291+ {
1292+ "type": "github",
1293+ "username": "embik",
1294+ "repo": "dotfiles",
1295+ "tags": [
1296+ "chezmoi",
1297+ "dotfiles",
1298+ "macos",
1299+ "neovim",
1300+ "starship",
1301+ "zsh"
1302+ ]
1303+ },
1304+ {
1305+ "type": "github",
1306+ "username": "emuel-vassallo",
1307+ "repo": "dotfiles",
1308+ "tags": [
1309+ "bspwm",
1310+ "config",
1311+ "configuration-files",
1312+ "dofile",
1313+ "dotf",
1314+ "dotfiles",
1315+ "dotfiles-linux",
1316+ "dots",
1317+ "linux",
1318+ "neovim",
1319+ "neovim-configuration",
1320+ "neovim-dotfiles",
1321+ "polybar",
1322+ "rice",
1323+ "ricing",
1324+ "rofi",
1325+ "window-manager"
1326+ ]
1327+ },
1328+ {
1329+ "type": "github",
1330+ "username": "ericlovesmath",
1331+ "repo": "dotfiles",
1332+ "tags": [
1333+ "dotfiles",
1334+ "neovim",
1335+ "nvim",
1336+ "vim",
1337+ "zsh"
1338+ ]
1339+ },
1340+ {
1341+ "type": "github",
1342+ "username": "esamattis",
1343+ "repo": "neovim-config",
1344+ "tags": []
1345+ },
1346+ {
1347+ "type": "github",
1348+ "username": "fabioaacarneiro",
1349+ "repo": "neovim-lua-fc-setup",
1350+ "tags": []
1351+ },
1352+ {
1353+ "type": "github",
1354+ "username": "famiu",
1355+ "repo": "nvim-reload",
1356+ "tags": []
1357+ },
1358+ {
1359+ "type": "github",
1360+ "username": "fannheyward",
1361+ "repo": "init.vim",
1362+ "tags": []
1363+ },
1364+ {
1365+ "type": "github",
1366+ "username": "fdaciuk",
1367+ "repo": "dotfiles",
1368+ "tags": []
1369+ },
1370+ {
1371+ "type": "github",
1372+ "username": "felipesousa",
1373+ "repo": "dotfiles",
1374+ "tags": [
1375+ "dotfiles",
1376+ "lua",
1377+ "vim"
1378+ ]
1379+ },
1380+ {
1381+ "type": "github",
1382+ "username": "fgheng",
1383+ "repo": "vime",
1384+ "tags": [
1385+ "neovim",
1386+ "neovim-config",
1387+ "neovim-dotfiles",
1388+ "vim",
1389+ "vim-config",
1390+ "vim-scripts",
1391+ "vimrc"
1392+ ]
1393+ },
1394+ {
1395+ "type": "github",
1396+ "username": "fgheng",
1397+ "repo": "winbar.nvim",
1398+ "tags": [
1399+ "lua",
1400+ "neovim",
1401+ "neovim-ui",
1402+ "winbar"
1403+ ]
1404+ },
1405+ {
1406+ "type": "github",
1407+ "username": "figsoda",
1408+ "repo": "cfg",
1409+ "tags": [
1410+ "awesomewm",
1411+ "config",
1412+ "dotfiles",
1413+ "fcitx",
1414+ "fcitx5",
1415+ "fish",
1416+ "flake",
1417+ "flakes",
1418+ "neovim",
1419+ "nix",
1420+ "nixos",
1421+ "nvim",
1422+ "rime",
1423+ "rofi",
1424+ "vim"
1425+ ]
1426+ },
1427+ {
1428+ "type": "github",
1429+ "username": "filloBuccia",
1430+ "repo": "nvim-config-file",
1431+ "tags": []
1432+ },
1433+ {
1434+ "type": "github",
1435+ "username": "fioncat",
1436+ "repo": "spacenvim",
1437+ "tags": [
1438+ "dotfiles",
1439+ "neovim"
1440+ ]
1441+ },
1442+ {
1443+ "type": "github",
1444+ "username": "Fireond",
1445+ "repo": "Neovim-config",
1446+ "tags": []
1447+ },
1448+ {
1449+ "type": "github",
1450+ "username": "fisadev",
1451+ "repo": "fisa-nvim-config",
1452+ "tags": []
1453+ },
1454+ {
1455+ "type": "github",
1456+ "username": "fnichol",
1457+ "repo": "dotvim",
1458+ "tags": [
1459+ "vim-script",
1460+ "vimrc"
1461+ ]
1462+ },
1463+ {
1464+ "type": "github",
1465+ "username": "folke",
1466+ "repo": "dot",
1467+ "tags": [
1468+ "ansible",
1469+ "doom-emacs",
1470+ "dotfiles",
1471+ "dotfiles-linux",
1472+ "dotfiles-macos",
1473+ "emacs",
1474+ "hammerspoon",
1475+ "neovim",
1476+ "neovim-dotfiles",
1477+ "nix-darwin"
1478+ ]
1479+ },
1480+ {
1481+ "type": "github",
1482+ "username": "folke",
1483+ "repo": "neodev.nvim",
1484+ "tags": [
1485+ "lua",
1486+ "neovim",
1487+ "neovim-lsp",
1488+ "neovim-plugin"
1489+ ]
1490+ },
1491+ {
1492+ "type": "github",
1493+ "username": "foreverd34d",
1494+ "repo": ".dotfiles",
1495+ "tags": []
1496+ },
1497+ {
1498+ "type": "github",
1499+ "username": "francoserio",
1500+ "repo": "nvim",
1501+ "tags": [
1502+ "neovim",
1503+ "nvim",
1504+ "vim"
1505+ ]
1506+ },
1507+ {
1508+ "type": "github",
1509+ "username": "freddiehaddad",
1510+ "repo": "nvim",
1511+ "tags": [
1512+ "neovim"
1513+ ]
1514+ },
1515+ {
1516+ "type": "github",
1517+ "username": "fsouza",
1518+ "repo": "dotfiles",
1519+ "tags": [
1520+ "alacritty",
1521+ "dotfiles",
1522+ "hammerspoon",
1523+ "neovim",
1524+ "vimfiles",
1525+ "zsh",
1526+ "zshrc"
1527+ ]
1528+ },
1529+ {
1530+ "type": "github",
1531+ "username": "g6ai",
1532+ "repo": "dotfiles",
1533+ "tags": [
1534+ "alacritty",
1535+ "aria2",
1536+ "bash",
1537+ "brewfile",
1538+ "chezmoi",
1539+ "doom-emacs",
1540+ "dotfiles",
1541+ "git",
1542+ "homebrew",
1543+ "jupyterlab",
1544+ "kitty",
1545+ "mpv",
1546+ "neovim",
1547+ "nix",
1548+ "tmux",
1549+ "vim",
1550+ "wezterm",
1551+ "zsh"
1552+ ]
1553+ },
1554+ {
1555+ "type": "github",
1556+ "username": "gacha",
1557+ "repo": "nvim-config",
1558+ "tags": []
1559+ },
1560+ {
1561+ "type": "github",
1562+ "username": "Gavinok",
1563+ "repo": "Kickstart.nvim",
1564+ "tags": []
1565+ },
1566+ {
1567+ "type": "github",
1568+ "username": "gbprod",
1569+ "repo": "gbvim",
1570+ "tags": []
1571+ },
1572+ {
1573+ "type": "github",
1574+ "username": "ggteixeira",
1575+ "repo": "dotfiles",
1576+ "tags": [
1577+ "arch-linux",
1578+ "dotfiles",
1579+ "fish",
1580+ "fish-shell",
1581+ "i3wm",
1582+ "kitty",
1583+ "kitty-terminal",
1584+ "linux",
1585+ "lunarvim",
1586+ "macos",
1587+ "manjaro-i3wm",
1588+ "neovim",
1589+ "nvim",
1590+ "vim"
1591+ ]
1592+ },
1593+ {
1594+ "type": "github",
1595+ "username": "GideonWolfe",
1596+ "repo": "nvim-lua",
1597+ "tags": []
1598+ },
1599+ {
1600+ "type": "github",
1601+ "username": "GideonWolfe",
1602+ "repo": "vim.reaper",
1603+ "tags": [
1604+ "coc",
1605+ "neovim",
1606+ "pywal",
1607+ "startify",
1608+ "vim",
1609+ "vista"
1610+ ]
1611+ },
1612+ {
1613+ "type": "github",
1614+ "username": "GIN-18",
1615+ "repo": "nvim",
1616+ "tags": []
1617+ },
1618+ {
1619+ "type": "github",
1620+ "username": "GiorgosXou",
1621+ "repo": "our-neovim-setup",
1622+ "tags": []
1623+ },
1624+ {
1625+ "type": "github",
1626+ "username": "glepnir",
1627+ "repo": "nvim",
1628+ "tags": [
1629+ "lua",
1630+ "nvim"
1631+ ]
1632+ },
1633+ {
1634+ "type": "github",
1635+ "username": "gmr458",
1636+ "repo": "nvim",
1637+ "tags": [
1638+ "codeeditor",
1639+ "dotfiles",
1640+ "ide",
1641+ "lua",
1642+ "neovim",
1643+ "nvim",
1644+ "vim"
1645+ ]
1646+ },
1647+ {
1648+ "type": "github",
1649+ "username": "gpanders",
1650+ "repo": "nvim-moonwalk",
1651+ "tags": [
1652+ "fennel",
1653+ "lua",
1654+ "moonscript",
1655+ "neovim",
1656+ "neovim-plugin",
1657+ "teal"
1658+ ]
1659+ },
1660+ {
1661+ "type": "github",
1662+ "username": "greekrode",
1663+ "repo": "nvim-config",
1664+ "tags": []
1665+ },
1666+ {
1667+ "type": "github",
1668+ "username": "GustavoPrietoP",
1669+ "repo": "evil-nvim",
1670+ "tags": [
1671+ "doom-emacs",
1672+ "evil",
1673+ "evil-nvim",
1674+ "neovim"
1675+ ]
1676+ },
1677+ {
1678+ "type": "github",
1679+ "username": "gvolpe",
1680+ "repo": "vim-setup",
1681+ "tags": [
1682+ "coc",
1683+ "haskell",
1684+ "metals",
1685+ "nvim",
1686+ "scala",
1687+ "vim"
1688+ ]
1689+ },
1690+ {
1691+ "type": "github",
1692+ "username": "hackorum",
1693+ "repo": "nfs",
1694+ "tags": [
1695+ "dotfiles",
1696+ "linux",
1697+ "lua",
1698+ "mac",
1699+ "neovim",
1700+ "tutorial",
1701+ "vim",
1702+ "youtube"
1703+ ]
1704+ },
1705+ {
1706+ "type": "github",
1707+ "username": "halafi",
1708+ "repo": "dotfiles",
1709+ "tags": [
1710+ "chrome-extensions",
1711+ "devtools",
1712+ "dotfiles",
1713+ "extensions",
1714+ "goku",
1715+ "karabiner-elements",
1716+ "mac-setup",
1717+ "neovim",
1718+ "nvim",
1719+ "osx-setup",
1720+ "setup",
1721+ "tmux",
1722+ "vim",
1723+ "vimrc",
1724+ "vscode-plugin"
1725+ ]
1726+ },
1727+ {
1728+ "type": "github",
1729+ "username": "halsn",
1730+ "repo": "neovim-config",
1731+ "tags": [
1732+ "neovim",
1733+ "neovim-conf",
1734+ "neovim-dotfiles",
1735+ "vim",
1736+ "vimrc"
1737+ ]
1738+ },
1739+ {
1740+ "type": "github",
1741+ "username": "haotongye",
1742+ "repo": "dotfiles",
1743+ "tags": [
1744+ "dotfiles",
1745+ "tmux-conf",
1746+ "vimrc",
1747+ "zshrc"
1748+ ]
1749+ },
1750+ {
1751+ "type": "github",
1752+ "username": "harrisoncramer",
1753+ "repo": "nvim",
1754+ "tags": [
1755+ "configuration",
1756+ "neovim",
1757+ "vim"
1758+ ]
1759+ },
1760+ {
1761+ "type": "github",
1762+ "username": "heetch",
1763+ "repo": "neovim-config",
1764+ "tags": [
1765+ "neovim"
1766+ ]
1767+ },
1768+ {
1769+ "type": "github",
1770+ "username": "HendrikPetertje",
1771+ "repo": "neovim-starter",
1772+ "tags": []
1773+ },
1774+ {
1775+ "type": "github",
1776+ "username": "heypoom",
1777+ "repo": "dotfiles",
1778+ "tags": [
1779+ "docker",
1780+ "dotfile",
1781+ "dotfiles",
1782+ "fish",
1783+ "linux",
1784+ "macos",
1785+ "neovim",
1786+ "nvim",
1787+ "nvimrc",
1788+ "tmux",
1789+ "tmux-conf",
1790+ "vim",
1791+ "vimrc",
1792+ "vscode"
1793+ ]
1794+ },
1795+ {
1796+ "type": "github",
1797+ "username": "hgup",
1798+ "repo": "nvim",
1799+ "tags": [
1800+ "dotfiles",
1801+ "neovim",
1802+ "nvim",
1803+ "plugins",
1804+ "rice"
1805+ ]
1806+ },
1807+ {
1808+ "type": "github",
1809+ "username": "hiyali",
1810+ "repo": "nvim",
1811+ "tags": [
1812+ "config",
1813+ "configuration",
1814+ "install",
1815+ "neovim",
1816+ "nvim",
1817+ "script",
1818+ "shortcut",
1819+ "theme"
1820+ ]
1821+ },
1822+ {
1823+ "type": "github",
1824+ "username": "hootan09",
1825+ "repo": "vim-termux",
1826+ "tags": []
1827+ },
1828+ {
1829+ "type": "github",
1830+ "username": "hoprr",
1831+ "repo": "nvy",
1832+ "tags": []
1833+ },
1834+ {
1835+ "type": "github",
1836+ "username": "huytd",
1837+ "repo": "vim-config",
1838+ "tags": [
1839+ "neovim",
1840+ "neovim-configuration",
1841+ "vim",
1842+ "vimrc"
1843+ ]
1844+ },
1845+ {
1846+ "type": "github",
1847+ "username": "hyshka",
1848+ "repo": "docker-neovim",
1849+ "tags": []
1850+ },
1851+ {
1852+ "type": "github",
1853+ "username": "Iamafnan",
1854+ "repo": "my-nvimrc",
1855+ "tags": [
1856+ "lua",
1857+ "neovim",
1858+ "nvim",
1859+ "vim"
1860+ ]
1861+ },
1862+ {
1863+ "type": "github",
1864+ "username": "Integralist",
1865+ "repo": "nvim",
1866+ "tags": []
1867+ },
1868+ {
1869+ "type": "github",
1870+ "username": "IsikcanYilmaz",
1871+ "repo": "JonsNvimSetup",
1872+ "tags": []
1873+ },
1874+ {
1875+ "type": "github",
1876+ "username": "ixahmedxi",
1877+ "repo": "trashvim",
1878+ "tags": [
1879+ "catppuccin",
1880+ "lsp",
1881+ "lua",
1882+ "neovim",
1883+ "neovim-config",
1884+ "packer",
1885+ "treesitter",
1886+ "which-key"
1887+ ]
1888+ },
1889+ {
1890+ "type": "github",
1891+ "username": "jacoborus",
1892+ "repo": "dotfiles",
1893+ "tags": [
1894+ "neovim",
1895+ "neovim-dotfiles",
1896+ "tmux-conf",
1897+ "tmux-themes",
1898+ "vim",
1899+ "zsh-configuration"
1900+ ]
1901+ },
1902+ {
1903+ "type": "github",
1904+ "username": "jayniz",
1905+ "repo": "zsh-tmux-neovim-docker",
1906+ "tags": []
1907+ },
1908+ {
1909+ "type": "github",
1910+ "username": "jdhao",
1911+ "repo": "nvim-config",
1912+ "tags": [
1913+ "neovim",
1914+ "neovim-conf",
1915+ "neovim-config",
1916+ "neovim-configuration",
1917+ "neovim-dotfiles",
1918+ "nvim"
1919+ ]
1920+ },
1921+ {
1922+ "type": "github",
1923+ "username": "jeffbuttars",
1924+ "repo": "nvim",
1925+ "tags": []
1926+ },
1927+ {
1928+ "type": "github",
1929+ "username": "jellydn",
1930+ "repo": "lazy-nvim-ide",
1931+ "tags": [
1932+ "ide",
1933+ "neovim",
1934+ "nvim"
1935+ ]
1936+ },
1937+ {
1938+ "type": "github",
1939+ "username": "jerryshell",
1940+ "repo": "mnv",
1941+ "tags": [
1942+ "neovim",
1943+ "nvim",
1944+ "vim",
1945+ "vim-go",
1946+ "vim-node",
1947+ "vim-rust"
1948+ ]
1949+ },
1950+ {
1951+ "type": "github",
1952+ "username": "jessarcher",
1953+ "repo": "laracasts-dotfiles",
1954+ "tags": []
1955+ },
1956+ {
1957+ "type": "github",
1958+ "username": "jiajunhuang",
1959+ "repo": "dotxmonad",
1960+ "tags": []
1961+ },
1962+ {
1963+ "type": "github",
1964+ "username": "jinzhongjia",
1965+ "repo": "neovim-config",
1966+ "tags": [
1967+ "neovim-config",
1968+ "neovim-configuration",
1969+ "neovim-dotfiles"
1970+ ]
1971+ },
1972+ {
1973+ "type": "github",
1974+ "username": "jmbuhr",
1975+ "repo": "quarto-nvim-kickstarter",
1976+ "tags": []
1977+ },
1978+ {
1979+ "type": "github",
1980+ "username": "joelazar",
1981+ "repo": "nvim-config",
1982+ "tags": [
1983+ "autocompletion",
1984+ "config",
1985+ "configuration",
1986+ "configuration-files",
1987+ "copilot",
1988+ "developer-tools",
1989+ "development",
1990+ "golang",
1991+ "lazy",
1992+ "lsp",
1993+ "lua",
1994+ "neovim",
1995+ "neovim-plugin",
1996+ "nnn",
1997+ "nvim",
1998+ "packer",
1999+ "programming",
2000+ "python",
2001+ "typescript",
2002+ "vim"
2003+ ]
2004+ },
2005+ {
2006+ "type": "github",
2007+ "username": "johackim",
2008+ "repo": "dotfiles",
2009+ "tags": [
2010+ "archlinux",
2011+ "archlinux-dotfiles",
2012+ "dotfiles",
2013+ "dunst",
2014+ "i3",
2015+ "neovim",
2016+ "personal-dotfiles",
2017+ "polybar",
2018+ "pywal",
2019+ "rxvt",
2020+ "rxvt-unicode",
2021+ "tmux",
2022+ "zsh"
2023+ ]
2024+ },
2025+ {
2026+ "type": "github",
2027+ "username": "johnmendonca",
2028+ "repo": "nvim",
2029+ "tags": []
2030+ },
2031+ {
2032+ "type": "github",
2033+ "username": "johnvictorfs",
2034+ "repo": "dotfiles",
2035+ "tags": [
2036+ "dotfiles"
2037+ ]
2038+ },
2039+ {
2040+ "type": "github",
2041+ "username": "JoosepAlviste",
2042+ "repo": "dotfiles",
2043+ "tags": [
2044+ "dotfiles",
2045+ "kitty",
2046+ "lua",
2047+ "neovim",
2048+ "neovim-lsp",
2049+ "nvim",
2050+ "nvim-lua",
2051+ "zsh"
2052+ ]
2053+ },
2054+ {
2055+ "type": "github",
2056+ "username": "jordanisaacs",
2057+ "repo": "neovim-flake",
2058+ "tags": [
2059+ "flake",
2060+ "neovim",
2061+ "nix",
2062+ "nix-flake"
2063+ ]
2064+ },
2065+ {
2066+ "type": "github",
2067+ "username": "jorinvo",
2068+ "repo": "dotfiles",
2069+ "tags": []
2070+ },
2071+ {
2072+ "type": "github",
2073+ "username": "jose-elias-alvarez",
2074+ "repo": "buftabline.nvim",
2075+ "tags": [
2076+ "bufferline",
2077+ "lua",
2078+ "neovim",
2079+ "neovim-plugin"
2080+ ]
2081+ },
2082+ {
2083+ "type": "github",
2084+ "username": "jose-elias-alvarez",
2085+ "repo": "dotfiles",
2086+ "tags": [
2087+ "dotbot",
2088+ "dotfiles",
2089+ "fish",
2090+ "macos",
2091+ "neovim",
2092+ "terminal",
2093+ "tmux"
2094+ ]
2095+ },
2096+ {
2097+ "type": "github",
2098+ "username": "joshukraine",
2099+ "repo": "dotfiles",
2100+ "tags": [
2101+ "asdf",
2102+ "dotfiles",
2103+ "fish-shell",
2104+ "iterm2",
2105+ "macos",
2106+ "neovim",
2107+ "rails",
2108+ "react",
2109+ "ruby",
2110+ "tmux",
2111+ "vim",
2112+ "vue",
2113+ "zsh"
2114+ ]
2115+ },
2116+ {
2117+ "type": "github",
2118+ "username": "joshukraine",
2119+ "repo": "mac-bootstrap",
2120+ "tags": [
2121+ "asdf",
2122+ "dotfiles",
2123+ "fish",
2124+ "iterm2",
2125+ "laptop",
2126+ "mac-bootstrap",
2127+ "macos",
2128+ "neovim",
2129+ "preferences",
2130+ "tmux",
2131+ "zsh"
2132+ ]
2133+ },
2134+ {
2135+ "type": "github",
2136+ "username": "Jrachman",
2137+ "repo": "kitty-neovim-tmux-ultimate-setup",
2138+ "tags": [
2139+ "config",
2140+ "kitty",
2141+ "neovim",
2142+ "setup",
2143+ "tmux"
2144+ ]
2145+ },
2146+ {
2147+ "type": "github",
2148+ "username": "JulesNP",
2149+ "repo": "nvim",
2150+ "tags": []
2151+ },
2152+ {
2153+ "type": "github",
2154+ "username": "justanoobcoder",
2155+ "repo": "nvim",
2156+ "tags": [
2157+ "linux",
2158+ "lsp",
2159+ "lua",
2160+ "neovim",
2161+ "nvim",
2162+ "vim"
2163+ ]
2164+ },
2165+ {
2166+ "type": "github",
2167+ "username": "justinmc",
2168+ "repo": "dotfiles",
2169+ "tags": []
2170+ },
2171+ {
2172+ "type": "github",
2173+ "username": "jyzeng17",
2174+ "repo": "quick-neovim-setup",
2175+ "tags": [
2176+ "hacktoberfest2018"
2177+ ]
2178+ },
2179+ {
2180+ "type": "github",
2181+ "username": "kartik1998",
2182+ "repo": "dotfiles",
2183+ "tags": [
2184+ "dotfiles",
2185+ "ideavimrc",
2186+ "intellij",
2187+ "neovim",
2188+ "setup",
2189+ "vim",
2190+ "vimrc",
2191+ "vscode"
2192+ ]
2193+ },
2194+ {
2195+ "type": "github",
2196+ "username": "kascote",
2197+ "repo": "nvim",
2198+ "tags": [
2199+ "lua",
2200+ "neovim"
2201+ ]
2202+ },
2203+ {
2204+ "type": "github",
2205+ "username": "kassio",
2206+ "repo": "nvim",
2207+ "tags": [
2208+ "neovim",
2209+ "nvim"
2210+ ]
2211+ },
2212+ {
2213+ "type": "github",
2214+ "username": "katawful",
2215+ "repo": "dotfiles-nvim",
2216+ "tags": []
2217+ },
2218+ {
2219+ "type": "github",
2220+ "username": "kavinvalli",
2221+ "repo": "dotfiles",
2222+ "tags": [
2223+ "dotfiles",
2224+ "fish",
2225+ "neovim",
2226+ "tmux"
2227+ ]
2228+ },
2229+ {
2230+ "type": "github",
2231+ "username": "Kethku",
2232+ "repo": "vim-config",
2233+ "tags": []
2234+ },
2235+ {
2236+ "type": "github",
2237+ "username": "kevinquinnyo",
2238+ "repo": "nvim",
2239+ "tags": []
2240+ },
2241+ {
2242+ "type": "github",
2243+ "username": "klen",
2244+ "repo": "nvim-config-local",
2245+ "tags": [
2246+ "neovim",
2247+ "neovim-configuration",
2248+ "neovim-plugin",
2249+ "nvim",
2250+ "nvim-configs",
2251+ "nvim-plugin"
2252+ ]
2253+ },
2254+ {
2255+ "type": "github",
2256+ "username": "kosayoda",
2257+ "repo": "nvim-dotfiles",
2258+ "tags": []
2259+ },
2260+ {
2261+ "type": "github",
2262+ "username": "krisleech",
2263+ "repo": "neovim-config",
2264+ "tags": []
2265+ },
2266+ {
2267+ "type": "github",
2268+ "username": "kristijanhusak",
2269+ "repo": "neovim-config",
2270+ "tags": [
2271+ "dotfile",
2272+ "dotfiles",
2273+ "neovim",
2274+ "tmux",
2275+ "vim",
2276+ "viml",
2277+ "zsh"
2278+ ]
2279+ },
2280+ {
2281+ "type": "github",
2282+ "username": "krmbzds",
2283+ "repo": "nvim",
2284+ "tags": [
2285+ "dotfiles",
2286+ "lua",
2287+ "neovim",
2288+ "neovim-dotfiles",
2289+ "nvim"
2290+ ]
2291+ },
2292+ {
2293+ "type": "github",
2294+ "username": "kuator",
2295+ "repo": "nvim",
2296+ "tags": [
2297+ "neovim-configuration",
2298+ "neovim-dotfiles",
2299+ "vim-configuration",
2300+ "vim-dotfiles",
2301+ "vimrc"
2302+ ]
2303+ },
2304+ {
2305+ "type": "github",
2306+ "username": "KyleJKC",
2307+ "repo": "nvim_vimscript",
2308+ "tags": []
2309+ },
2310+ {
2311+ "type": "github",
2312+ "username": "ladislas",
2313+ "repo": "nvim",
2314+ "tags": []
2315+ },
2316+ {
2317+ "type": "github",
2318+ "username": "languitar",
2319+ "repo": "config-vim",
2320+ "tags": []
2321+ },
2322+ {
2323+ "type": "github",
2324+ "username": "LazyVim",
2325+ "repo": "LazyVim",
2326+ "tags": [
2327+ "neovim",
2328+ "neovim-conf",
2329+ "neovim-config",
2330+ "neovim-configuration",
2331+ "neovim-plugin",
2332+ "nvim"
2333+ ]
2334+ },
2335+ {
2336+ "type": "github",
2337+ "username": "leslie255",
2338+ "repo": "nvim-config",
2339+ "tags": []
2340+ },
2341+ {
2342+ "type": "github",
2343+ "username": "linjiX",
2344+ "repo": "nvim",
2345+ "tags": [
2346+ "neovim",
2347+ "nvim",
2348+ "vim"
2349+ ]
2350+ },
2351+ {
2352+ "type": "github",
2353+ "username": "linkux-it",
2354+ "repo": "vimgalaxy",
2355+ "tags": [
2356+ "developer-tools",
2357+ "neovim",
2358+ "spacemacs",
2359+ "vim-configuration",
2360+ "vim-distribution"
2361+ ]
2362+ },
2363+ {
2364+ "type": "github",
2365+ "username": "lmburns",
2366+ "repo": "dotfiles",
2367+ "tags": [
2368+ "bspwm",
2369+ "dotfiles",
2370+ "linux",
2371+ "neovim",
2372+ "scripts",
2373+ "sxhkd",
2374+ "x11",
2375+ "zinit",
2376+ "zsh"
2377+ ]
2378+ },
2379+ {
2380+ "type": "github",
2381+ "username": "loctvl842",
2382+ "repo": "nvim",
2383+ "tags": []
2384+ },
2385+ {
2386+ "type": "github",
2387+ "username": "lorencarvalho",
2388+ "repo": "dotfiles",
2389+ "tags": []
2390+ },
2391+ {
2392+ "type": "github",
2393+ "username": "lucat1",
2394+ "repo": "visimp",
2395+ "tags": [
2396+ "hacktoberfest",
2397+ "lsp",
2398+ "lua",
2399+ "neovim",
2400+ "nvim-lsp",
2401+ "nvim-lspinstall",
2402+ "vim-distribution"
2403+ ]
2404+ },
2405+ {
2406+ "type": "github",
2407+ "username": "LunarVim",
2408+ "repo": "LunarVim",
2409+ "tags": [
2410+ "formatters",
2411+ "hacktoberfest",
2412+ "hacktoberfest2022",
2413+ "ide",
2414+ "linters",
2415+ "lua",
2416+ "lunarvim",
2417+ "neovim",
2418+ "neovim-config",
2419+ "neovim-configuration",
2420+ "neovim-lua",
2421+ "neovim-setup",
2422+ "nvim",
2423+ "snippets",
2424+ "vim",
2425+ "vimrc",
2426+ "vscode"
2427+ ]
2428+ },
2429+ {
2430+ "type": "github",
2431+ "username": "LunarVim",
2432+ "repo": "Neovim-from-scratch",
2433+ "tags": [
2434+ "hacktoberfest",
2435+ "hacktoberfest2022",
2436+ "neovim",
2437+ "neovim-config",
2438+ "neovim-dotfiles",
2439+ "nvim",
2440+ "nvim-plugin",
2441+ "nvimrc"
2442+ ]
2443+ },
2444+ {
2445+ "type": "github",
2446+ "username": "luong-komorebi",
2447+ "repo": "neovim-dotfiles",
2448+ "tags": [
2449+ "lua",
2450+ "luajit",
2451+ "neovim",
2452+ "nvim",
2453+ "vim"
2454+ ]
2455+ },
2456+ {
2457+ "type": "github",
2458+ "username": "lwotcynna",
2459+ "repo": "nvim",
2460+ "tags": []
2461+ },
2462+ {
2463+ "type": "github",
2464+ "username": "lynhan318",
2465+ "repo": ".config",
2466+ "tags": []
2467+ },
2468+ {
2469+ "type": "github",
2470+ "username": "lynhan318",
2471+ "repo": "dotfiles",
2472+ "tags": []
2473+ },
2474+ {
2475+ "type": "github",
2476+ "username": "lynhan318",
2477+ "repo": "vim-config",
2478+ "tags": []
2479+ },
2480+ {
2481+ "type": "github",
2482+ "username": "lynndylanhurley",
2483+ "repo": "nvim",
2484+ "tags": []
2485+ },
2486+ {
2487+ "type": "github",
2488+ "username": "magidc",
2489+ "repo": "nvim-config",
2490+ "tags": []
2491+ },
2492+ {
2493+ "type": "github",
2494+ "username": "Manas140",
2495+ "repo": "Conscious",
2496+ "tags": [
2497+ "config",
2498+ "dotfiles",
2499+ "lua",
2500+ "nvim"
2501+ ]
2502+ },
2503+ {
2504+ "type": "github",
2505+ "username": "marioy47",
2506+ "repo": "nvim-lua-config",
2507+ "tags": []
2508+ },
2509+ {
2510+ "type": "github",
2511+ "username": "marko-cerovac",
2512+ "repo": "nvim",
2513+ "tags": []
2514+ },
2515+ {
2516+ "type": "github",
2517+ "username": "Martins3",
2518+ "repo": "My-Linux-Config",
2519+ "tags": [
2520+ "coc",
2521+ "dotfiles",
2522+ "neovim",
2523+ "tmux"
2524+ ]
2525+ },
2526+ {
2527+ "type": "github",
2528+ "username": "Mathijs-Bakker",
2529+ "repo": "dotfiles",
2530+ "tags": [
2531+ "alacritty",
2532+ "dotfiles",
2533+ "karabiner-elements",
2534+ "kitty",
2535+ "macos",
2536+ "neovim",
2537+ "neovim-lsp",
2538+ "omnisharp",
2539+ "rust",
2540+ "rust-tools",
2541+ "tmux",
2542+ "yabai",
2543+ "zsh"
2544+ ]
2545+ },
2546+ {
2547+ "type": "github",
2548+ "username": "MeirKriheli",
2549+ "repo": "dotneovim",
2550+ "tags": [
2551+ "dotfiles",
2552+ "neovim",
2553+ "vim"
2554+ ]
2555+ },
2556+ {
2557+ "type": "github",
2558+ "username": "meribold",
2559+ "repo": "dotfiles",
2560+ "tags": [
2561+ "bash",
2562+ "dotfiles",
2563+ "fontconfig",
2564+ "fzf",
2565+ "gnu-make",
2566+ "gnu-screen",
2567+ "i3",
2568+ "i3-gaps",
2569+ "i3wm",
2570+ "irssi",
2571+ "make",
2572+ "makefile",
2573+ "mutt",
2574+ "neomutt",
2575+ "neovim",
2576+ "newsboat",
2577+ "screen",
2578+ "shell",
2579+ "vim",
2580+ "xbindkeys"
2581+ ]
2582+ },
2583+ {
2584+ "type": "github",
2585+ "username": "miltonllera",
2586+ "repo": "neovim-config",
2587+ "tags": [
2588+ "dotfiles",
2589+ "lua",
2590+ "neovim",
2591+ "neovim-config",
2592+ "neovim-configuration",
2593+ "neovim-dotfiles",
2594+ "nvim",
2595+ "nvim-configs",
2596+ "vim",
2597+ "vim-configs",
2598+ "vim-configuration"
2599+ ]
2600+ },
2601+ {
2602+ "type": "github",
2603+ "username": "misakar",
2604+ "repo": "MuxiVim",
2605+ "tags": []
2606+ },
2607+ {
2608+ "type": "github",
2609+ "username": "mjlbach",
2610+ "repo": "starter.nvim",
2611+ "tags": []
2612+ },
2613+ {
2614+ "type": "github",
2615+ "username": "MondoGao",
2616+ "repo": "neovimConfig",
2617+ "tags": []
2618+ },
2619+ {
2620+ "type": "github",
2621+ "username": "mrbeardad",
2622+ "repo": "MyLunarVim",
2623+ "tags": [
2624+ "ide",
2625+ "lua",
2626+ "lunarvim",
2627+ "neovim",
2628+ "vim"
2629+ ]
2630+ },
2631+ {
2632+ "type": "github",
2633+ "username": "mrjones2014",
2634+ "repo": "dotfiles",
2635+ "tags": [
2636+ "dotfiles",
2637+ "fish",
2638+ "fish-shell",
2639+ "hammerspoon",
2640+ "homebrew",
2641+ "lua",
2642+ "macos",
2643+ "neovim",
2644+ "neovim-config",
2645+ "neovim-configuration",
2646+ "nvim-lsp",
2647+ "nvim-lua",
2648+ "shell",
2649+ "tmux",
2650+ "tmux-configs",
2651+ "tmux-configuration",
2652+ "vim",
2653+ "vim-config",
2654+ "vim-configuration",
2655+ "vimrc"
2656+ ]
2657+ },
2658+ {
2659+ "type": "github",
2660+ "username": "mrLuisFer",
2661+ "repo": "neovim-dotfiles",
2662+ "tags": [
2663+ "dotfiles",
2664+ "neovim",
2665+ "nvim",
2666+ "vim",
2667+ "vim-colorscheme",
2668+ "vim-configuration",
2669+ "vim-plugin",
2670+ "vimrc"
2671+ ]
2672+ },
2673+ {
2674+ "type": "github",
2675+ "username": "mrprofessor",
2676+ "repo": "dotfiles",
2677+ "tags": []
2678+ },
2679+ {
2680+ "type": "github",
2681+ "username": "MunifTanjim",
2682+ "repo": "exrc.nvim",
2683+ "tags": [
2684+ "neovim",
2685+ "neovim-plugin"
2686+ ]
2687+ },
2688+ {
2689+ "type": "github",
2690+ "username": "MunifTanjim",
2691+ "repo": "setup-neovim-action",
2692+ "tags": [
2693+ "gitub-actions",
2694+ "neovim"
2695+ ]
2696+ },
2697+ {
2698+ "type": "github",
2699+ "username": "mvpopuk",
2700+ "repo": "dotfiles",
2701+ "tags": [
2702+ "dotfiles",
2703+ "neovim",
2704+ "neovim-dotfiles"
2705+ ]
2706+ },
2707+ {
2708+ "type": "github",
2709+ "username": "naibaf0",
2710+ "repo": "dotfiles",
2711+ "tags": [
2712+ "alacritty",
2713+ "arch-linux",
2714+ "dotfiles",
2715+ "dracula",
2716+ "dracula-theme",
2717+ "dunstrc",
2718+ "i3",
2719+ "i3-gaps",
2720+ "i3blocks-scripts",
2721+ "i3wm",
2722+ "neovim",
2723+ "neovim-dotfiles",
2724+ "ricing",
2725+ "sway",
2726+ "swaywm",
2727+ "tmux",
2728+ "vim",
2729+ "wayland",
2730+ "zsh"
2731+ ]
2732+ },
2733+ {
2734+ "type": "github",
2735+ "username": "Neelfrost",
2736+ "repo": "nvim-config",
2737+ "tags": [
2738+ "latex",
2739+ "latex-ide",
2740+ "neovim",
2741+ "neovim-config",
2742+ "neovim-configuration",
2743+ "neovim-dotfiles",
2744+ "neovim-lua",
2745+ "windows"
2746+ ]
2747+ },
2748+ {
2749+ "type": "github",
2750+ "username": "nemo256",
2751+ "repo": "vimy",
2752+ "tags": [
2753+ "neovim-dotfiles",
2754+ "nvim-configs",
2755+ "nvim-lua"
2756+ ]
2757+ },
2758+ {
2759+ "type": "github",
2760+ "username": "Netherdrake",
2761+ "repo": "Dotfiles",
2762+ "tags": [
2763+ "fish",
2764+ "i3",
2765+ "i3wm",
2766+ "linux",
2767+ "neovim",
2768+ "tilix",
2769+ "tmux"
2770+ ]
2771+ },
2772+ {
2773+ "type": "github",
2774+ "username": "nexxeln",
2775+ "repo": "nvim",
2776+ "tags": [
2777+ "config",
2778+ "lua",
2779+ "neovim",
2780+ "nvim",
2781+ "vim"
2782+ ]
2783+ },
2784+ {
2785+ "type": "github",
2786+ "username": "ngocthienvnn",
2787+ "repo": "neovim-configs",
2788+ "tags": []
2789+ },
2790+ {
2791+ "type": "github",
2792+ "username": "Nguyen-Hoang-Nam",
2793+ "repo": "neovim-config-wsl2",
2794+ "tags": [
2795+ "dotfiles",
2796+ "neovim",
2797+ "wsl2"
2798+ ]
2799+ },
2800+ {
2801+ "type": "github",
2802+ "username": "nicknisi",
2803+ "repo": "dotfiles",
2804+ "tags": [
2805+ "dotfiles",
2806+ "git",
2807+ "homebrew",
2808+ "neovim",
2809+ "neovim-setup",
2810+ "osx",
2811+ "shell",
2812+ "tmux",
2813+ "tmux-configuration",
2814+ "vim",
2815+ "zsh",
2816+ "zsh-setup"
2817+ ]
2818+ },
2819+ {
2820+ "type": "github",
2821+ "username": "NightCS",
2822+ "repo": "night.nvim",
2823+ "tags": [
2824+ "beautiful",
2825+ "colorscheme",
2826+ "configuration",
2827+ "dotfiles",
2828+ "linux",
2829+ "lua",
2830+ "night",
2831+ "nvim",
2832+ "rice",
2833+ "ricing",
2834+ "terminal",
2835+ "vimscript"
2836+ ]
2837+ },
2838+ {
2839+ "type": "github",
2840+ "username": "Nimeavles",
2841+ "repo": "neovim-setup",
2842+ "tags": []
2843+ },
2844+ {
2845+ "type": "github",
2846+ "username": "noib3",
2847+ "repo": "dotfiles",
2848+ "tags": [
2849+ "dotfiles",
2850+ "home-manager",
2851+ "neovim-dotfiles",
2852+ "neovim-setup",
2853+ "nix-dotfiles",
2854+ "nixos",
2855+ "ricing",
2856+ "unixporn"
2857+ ]
2858+ },
2859+ {
2860+ "type": "github",
2861+ "username": "notomo",
2862+ "repo": "action-setup-nvim-lua",
2863+ "tags": [
2864+ "github-actions",
2865+ "neovim"
2866+ ]
2867+ },
2868+ {
2869+ "type": "github",
2870+ "username": "nouvist",
2871+ "repo": "just-another-neovim-config",
2872+ "tags": []
2873+ },
2874+ {
2875+ "type": "github",
2876+ "username": "nschurmann",
2877+ "repo": "configs",
2878+ "tags": []
2879+ },
2880+ {
2881+ "type": "github",
2882+ "username": "nshen",
2883+ "repo": "InsisVim",
2884+ "tags": [
2885+ "neovim",
2886+ "neovim-configuration"
2887+ ]
2888+ },
2889+ {
2890+ "type": "github",
2891+ "username": "NTBBloodbath",
2892+ "repo": "cheovim",
2893+ "tags": [
2894+ "config-management",
2895+ "lua",
2896+ "neovim",
2897+ "neovim-lua",
2898+ "switching-configs"
2899+ ]
2900+ },
2901+ {
2902+ "type": "github",
2903+ "username": "NTBBloodbath",
2904+ "repo": "nvim",
2905+ "tags": [
2906+ "lua",
2907+ "neovim"
2908+ ]
2909+ },
2910+ {
2911+ "type": "github",
2912+ "username": "ntk148v",
2913+ "repo": "neovim-config",
2914+ "tags": [
2915+ "ide",
2916+ "lua",
2917+ "neovim",
2918+ "neovim-config",
2919+ "neovim-configuration",
2920+ "nvim",
2921+ "nvim-configs",
2922+ "nvimrc",
2923+ "vim",
2924+ "vimrc",
2925+ "vimscript"
2926+ ]
2927+ },
2928+ {
2929+ "type": "github",
2930+ "username": "numToStr",
2931+ "repo": "dotfiles",
2932+ "tags": [
2933+ "alacritty",
2934+ "bash",
2935+ "config",
2936+ "dotfiles",
2937+ "fzf",
2938+ "kitty",
2939+ "linux",
2940+ "lsp",
2941+ "lspconfig",
2942+ "lua",
2943+ "neovim",
2944+ "nvim",
2945+ "scripts",
2946+ "shell",
2947+ "stow",
2948+ "terminal",
2949+ "tmux",
2950+ "zinit",
2951+ "zsh"
2952+ ]
2953+ },
2954+ {
2955+ "type": "github",
2956+ "username": "NvChad",
2957+ "repo": "NvChad",
2958+ "tags": [
2959+ "dotfiles",
2960+ "editor",
2961+ "foss",
2962+ "hacktoberfest",
2963+ "ide",
2964+ "lua",
2965+ "neovim",
2966+ "neovim-config",
2967+ "neovim-configuration",
2968+ "neovim-dotfiles",
2969+ "neovim-lua",
2970+ "neovim-setup",
2971+ "nvim",
2972+ "nvim-configs",
2973+ "open-source",
2974+ "rice",
2975+ "ricing",
2976+ "vim",
2977+ "vimrc",
2978+ "vscode"
2979+ ]
2980+ },
2981+ {
2982+ "type": "github",
2983+ "username": "nvie",
2984+ "repo": "vimrc",
2985+ "tags": []
2986+ },
2987+ {
2988+ "type": "github",
2989+ "username": "nvim-lua",
2990+ "repo": "diagnostic-nvim",
2991+ "tags": []
2992+ },
2993+ {
2994+ "type": "github",
2995+ "username": "nvim-zh",
2996+ "repo": "minimal_vim",
2997+ "tags": [
2998+ "neovim-config",
2999+ "nvim-configs",
3000+ "nvimrc",
3001+ "vim",
3002+ "vimrc"
3003+ ]
3004+ },
3005+ {
3006+ "type": "github",
3007+ "username": "nvimdev",
3008+ "repo": "dope",
3009+ "tags": [
3010+ "lua",
3011+ "neovim",
3012+ "neovim-config",
3013+ "neovim-configuration",
3014+ "neovim-plugin"
3015+ ]
3016+ },
3017+ {
3018+ "type": "github",
3019+ "username": "NycRat",
3020+ "repo": "dotfiles",
3021+ "tags": [
3022+ "dotfiles",
3023+ "neovim"
3024+ ]
3025+ },
3026+ {
3027+ "type": "github",
3028+ "username": "nyinyithann",
3029+ "repo": "neovim-ocaml",
3030+ "tags": []
3031+ },
3032+ {
3033+ "type": "github",
3034+ "username": "nyoom-engineering",
3035+ "repo": "nyoom.nvim",
3036+ "tags": [
3037+ "dotfiles",
3038+ "lua",
3039+ "neovim-colorscheme",
3040+ "neovim-conf",
3041+ "neovim-configuration",
3042+ "neovim-dotfiles",
3043+ "neovim-lua",
3044+ "neovim-setup",
3045+ "rice",
3046+ "ricing",
3047+ "rust",
3048+ "vim",
3049+ "vimrc"
3050+ ]
3051+ },
3052+ {
3053+ "type": "github",
3054+ "username": "ObserverOfTime",
3055+ "repo": "dotnvim",
3056+ "tags": [
3057+ "dotfiles",
3058+ "neovim",
3059+ "neovim-dotfiles",
3060+ "nvim-lua"
3061+ ]
3062+ },
3063+ {
3064+ "type": "github",
3065+ "username": "oh-my-neovim",
3066+ "repo": "oh-my-neovim",
3067+ "tags": []
3068+ },
3069+ {
3070+ "type": "github",
3071+ "username": "OkelleyDevelopment",
3072+ "repo": "Nvim-Config",
3073+ "tags": [
3074+ "neovim",
3075+ "vim"
3076+ ]
3077+ },
3078+ {
3079+ "type": "github",
3080+ "username": "Olical",
3081+ "repo": "aniseed",
3082+ "tags": [
3083+ "fennel",
3084+ "lisp",
3085+ "lua",
3086+ "neovim"
3087+ ]
3088+ },
3089+ {
3090+ "type": "github",
3091+ "username": "Olical",
3092+ "repo": "dotfiles",
3093+ "tags": [
3094+ "arch-linux",
3095+ "dotfiles",
3096+ "fish",
3097+ "neovim",
3098+ "vim",
3099+ "vimrc"
3100+ ]
3101+ },
3102+ {
3103+ "type": "github",
3104+ "username": "Olical",
3105+ "repo": "spacy-neovim",
3106+ "tags": [
3107+ "dotfiles",
3108+ "neovim",
3109+ "spacemacs"
3110+ ]
3111+ },
3112+ {
3113+ "type": "github",
3114+ "username": "olivercederborg",
3115+ "repo": "dotfiles",
3116+ "tags": [
3117+ "dotfiles",
3118+ "macos",
3119+ "neovim",
3120+ "rice",
3121+ "shell",
3122+ "skhd",
3123+ "vim",
3124+ "yabai",
3125+ "zsh"
3126+ ]
3127+ },
3128+ {
3129+ "type": "github",
3130+ "username": "onlurking",
3131+ "repo": "termux",
3132+ "tags": []
3133+ },
3134+ {
3135+ "type": "github",
3136+ "username": "optimizacija",
3137+ "repo": "neovim-config",
3138+ "tags": [
3139+ "config",
3140+ "configuration",
3141+ "configuration-files",
3142+ "ide",
3143+ "init-vim",
3144+ "lua",
3145+ "neovim",
3146+ "neovim-config",
3147+ "neovim-lsp",
3148+ "neovim-lua",
3149+ "nvim",
3150+ "nvimrc",
3151+ "vim"
3152+ ]
3153+ },
3154+ {
3155+ "type": "github",
3156+ "username": "Optixal",
3157+ "repo": "neovim-init.vim",
3158+ "tags": [
3159+ "autocomplete",
3160+ "best",
3161+ "clean",
3162+ "configuration",
3163+ "custom",
3164+ "customizable",
3165+ "init-lua",
3166+ "init-vim",
3167+ "lua",
3168+ "minimal",
3169+ "neovim",
3170+ "neovim-config",
3171+ "nvim",
3172+ "plugins",
3173+ "productive",
3174+ "productivity",
3175+ "theme",
3176+ "tools",
3177+ "vim",
3178+ "vimrc"
3179+ ]
3180+ },
3181+ {
3182+ "type": "github",
3183+ "username": "orafaelfragoso",
3184+ "repo": "dotfiles",
3185+ "tags": [
3186+ "bash",
3187+ "dark",
3188+ "dotfiles",
3189+ "macos",
3190+ "oh-my-zsh",
3191+ "shell",
3192+ "tmux",
3193+ "ubuntu",
3194+ "vim",
3195+ "zsh"
3196+ ]
3197+ },
3198+ {
3199+ "type": "github",
3200+ "username": "otavioschwanck",
3201+ "repo": "mood-nvim",
3202+ "tags": []
3203+ },
3204+ {
3205+ "type": "github",
3206+ "username": "p1xelHer0",
3207+ "repo": "dotfiles",
3208+ "tags": [
3209+ "dotfiles",
3210+ "macos",
3211+ "neovim",
3212+ "tmux",
3213+ "zsh"
3214+ ]
3215+ },
3216+ {
3217+ "type": "github",
3218+ "username": "Pakrohk-DotFiles",
3219+ "repo": "NvPak",
3220+ "tags": []
3221+ },
3222+ {
3223+ "type": "github",
3224+ "username": "Perigord-Kleisli",
3225+ "repo": "Perigord-Nvim",
3226+ "tags": []
3227+ },
3228+ {
3229+ "type": "github",
3230+ "username": "peterpme",
3231+ "repo": "dotfiles",
3232+ "tags": [
3233+ "dotfiles",
3234+ "fzf",
3235+ "hammerspoon",
3236+ "iterm2",
3237+ "kitty",
3238+ "neovim",
3239+ "tmux",
3240+ "vim",
3241+ "yarn",
3242+ "zprezto",
3243+ "zsh"
3244+ ]
3245+ },
3246+ {
3247+ "type": "github",
3248+ "username": "phux",
3249+ "repo": ".dotfiles",
3250+ "tags": [
3251+ "ansible",
3252+ "dotfiles",
3253+ "golang",
3254+ "i3",
3255+ "i3wm",
3256+ "neovim",
3257+ "php",
3258+ "python",
3259+ "shell",
3260+ "tmux-conf",
3261+ "vim",
3262+ "zshrc"
3263+ ]
3264+ },
3265+ {
3266+ "type": "github",
3267+ "username": "pigoz",
3268+ "repo": "dotfiles",
3269+ "tags": [
3270+ "dotfiles",
3271+ "mpv",
3272+ "nvim",
3273+ "vim",
3274+ "zsh"
3275+ ]
3276+ },
3277+ {
3278+ "type": "github",
3279+ "username": "plentiform",
3280+ "repo": "go-ide",
3281+ "tags": [
3282+ "golang",
3283+ "ide",
3284+ "neovim"
3285+ ]
3286+ },
3287+ {
3288+ "type": "github",
3289+ "username": "practicalli",
3290+ "repo": "neovim-config-redux",
3291+ "tags": []
3292+ },
3293+ {
3294+ "type": "github",
3295+ "username": "prkteja",
3296+ "repo": "nvim-config",
3297+ "tags": []
3298+ },
3299+ {
3300+ "type": "github",
3301+ "username": "psycoder01",
3302+ "repo": "Neovim-Config",
3303+ "tags": [
3304+ "gruvbox",
3305+ "lua",
3306+ "neovim",
3307+ "telescope",
3308+ "vim"
3309+ ]
3310+ },
3311+ {
3312+ "type": "github",
3313+ "username": "ray-x",
3314+ "repo": "nvim",
3315+ "tags": [
3316+ "dotfiles",
3317+ "lua",
3318+ "neovim",
3319+ "nvim",
3320+ "nvimrc",
3321+ "vimrc"
3322+ ]
3323+ },
3324+ {
3325+ "type": "github",
3326+ "username": "rayes0",
3327+ "repo": "dotfiles",
3328+ "tags": []
3329+ },
3330+ {
3331+ "type": "github",
3332+ "username": "reo101",
3333+ "repo": "reovim",
3334+ "tags": [
3335+ "dotfiles",
3336+ "fennel",
3337+ "hotpot",
3338+ "lisp",
3339+ "lua",
3340+ "neovim",
3341+ "neovim-configuration",
3342+ "neovim-dotfiles",
3343+ "neovim-lua",
3344+ "neovim-setup",
3345+ "nvim",
3346+ "nvim-treesitter",
3347+ "telescope",
3348+ "vim",
3349+ "vimrc"
3350+ ]
3351+ },
3352+ {
3353+ "type": "github",
3354+ "username": "rhysd",
3355+ "repo": "action-setup-vim",
3356+ "tags": [
3357+ "github-action",
3358+ "neovim",
3359+ "vim"
3360+ ]
3361+ },
3362+ {
3363+ "type": "github",
3364+ "username": "richin13",
3365+ "repo": "dotfiles",
3366+ "tags": [
3367+ "dotfiles",
3368+ "lua",
3369+ "neovim",
3370+ "neovim-dotfiles"
3371+ ]
3372+ },
3373+ {
3374+ "type": "github",
3375+ "username": "rkruk",
3376+ "repo": "neovim-dotfiles",
3377+ "tags": [
3378+ "funtoo",
3379+ "gentoo",
3380+ "neovim",
3381+ "neovim-dotfiles"
3382+ ]
3383+ },
3384+ {
3385+ "type": "github",
3386+ "username": "rockerBOO",
3387+ "repo": "dotfiles",
3388+ "tags": [
3389+ "neovim-configuration"
3390+ ]
3391+ },
3392+ {
3393+ "type": "github",
3394+ "username": "rockyzhang24",
3395+ "repo": "dotfiles",
3396+ "tags": [
3397+ "alacritty",
3398+ "config",
3399+ "dotfiles",
3400+ "karabiner-elements",
3401+ "kitty",
3402+ "lf",
3403+ "linux",
3404+ "macos",
3405+ "neovim",
3406+ "ranger",
3407+ "tmux",
3408+ "vifm",
3409+ "vim",
3410+ "wezterm",
3411+ "yabai",
3412+ "zsh"
3413+ ]
3414+ },
3415+ {
3416+ "type": "github",
3417+ "username": "rod-stuchi",
3418+ "repo": "neovim.config",
3419+ "tags": []
3420+ },
3421+ {
3422+ "type": "github",
3423+ "username": "RRethy",
3424+ "repo": "dotfiles",
3425+ "tags": []
3426+ },
3427+ {
3428+ "type": "github",
3429+ "username": "rsdlt",
3430+ "repo": "nvim-config-files",
3431+ "tags": []
3432+ },
3433+ {
3434+ "type": "github",
3435+ "username": "ryanlanciaux",
3436+ "repo": "nvim-config",
3437+ "tags": []
3438+ },
3439+ {
3440+ "type": "github",
3441+ "username": "s-zeng",
3442+ "repo": "dotfiles",
3443+ "tags": []
3444+ },
3445+ {
3446+ "type": "github",
3447+ "username": "s1n7ax",
3448+ "repo": "dotnvim",
3449+ "tags": [
3450+ "coc",
3451+ "dotfiles",
3452+ "lsp",
3453+ "lua",
3454+ "neovim",
3455+ "neovim-config",
3456+ "neovim-configuration",
3457+ "neovim-dotfiles",
3458+ "neovim-lua",
3459+ "nvim",
3460+ "treesitter"
3461+ ]
3462+ },
3463+ {
3464+ "type": "github",
3465+ "username": "Sairyss",
3466+ "repo": "dev-setup",
3467+ "tags": [
3468+ "dev",
3469+ "developer-tools",
3470+ "development",
3471+ "dotfiles",
3472+ "productivity",
3473+ "productivity-tools",
3474+ "tools"
3475+ ]
3476+ },
3477+ {
3478+ "type": "github",
3479+ "username": "samrxth",
3480+ "repo": "kyoto.nvim",
3481+ "tags": [
3482+ "dotfiles",
3483+ "lua",
3484+ "neovim",
3485+ "neovim-dotfiles",
3486+ "vim",
3487+ "vimrc",
3488+ "vimrc-configuration"
3489+ ]
3490+ },
3491+ {
3492+ "type": "github",
3493+ "username": "saranshbarua",
3494+ "repo": "neovim-config",
3495+ "tags": [
3496+ "neovim",
3497+ "neovim-configuration",
3498+ "vim",
3499+ "zsh"
3500+ ]
3501+ },
3502+ {
3503+ "type": "github",
3504+ "username": "scottstanfield",
3505+ "repo": "dotfiles",
3506+ "tags": [
3507+ "dotfiles",
3508+ "neovim",
3509+ "r",
3510+ "zsh"
3511+ ]
3512+ },
3513+ {
3514+ "type": "github",
3515+ "username": "SenchoPens",
3516+ "repo": "dotfiles",
3517+ "tags": [
3518+ "archlinux",
3519+ "dotfiles",
3520+ "i3",
3521+ "neovim-dotfiles",
3522+ "xkb",
3523+ "zsh"
3524+ ]
3525+ },
3526+ {
3527+ "type": "github",
3528+ "username": "Sewdohe",
3529+ "repo": "NeoCode",
3530+ "tags": [
3531+ "ide",
3532+ "neovim",
3533+ "rust"
3534+ ]
3535+ },
3536+ {
3537+ "type": "github",
3538+ "username": "Shadorain",
3539+ "repo": "shadovim",
3540+ "tags": [
3541+ "clang",
3542+ "dark",
3543+ "lspconfig",
3544+ "lua",
3545+ "nativelsp",
3546+ "neovim",
3547+ "nvim",
3548+ "nvim-cmp",
3549+ "pink",
3550+ "purple",
3551+ "rust",
3552+ "shadotheme"
3553+ ]
3554+ },
3555+ {
3556+ "type": "github",
3557+ "username": "sharksforarms",
3558+ "repo": "neovim-rust",
3559+ "tags": [
3560+ "lsp",
3561+ "neovim",
3562+ "rust",
3563+ "rustlang",
3564+ "vim"
3565+ ]
3566+ },
3567+ {
3568+ "type": "github",
3569+ "username": "Shatur",
3570+ "repo": "neovim-config",
3571+ "tags": [
3572+ "neovim-configuration"
3573+ ]
3574+ },
3575+ {
3576+ "type": "github",
3577+ "username": "SIMULATAN",
3578+ "repo": "dotfiles",
3579+ "tags": [
3580+ "dotfiles",
3581+ "dotter",
3582+ "dunst",
3583+ "i3",
3584+ "i3-wm",
3585+ "linux",
3586+ "neovim-dotfiles",
3587+ "oh-my-zsh",
3588+ "ohmyzsh",
3589+ "picom-config",
3590+ "zsh"
3591+ ]
3592+ },
3593+ {
3594+ "type": "github",
3595+ "username": "SingularisArt",
3596+ "repo": "DeathVim",
3597+ "tags": [
3598+ "completion",
3599+ "lsp",
3600+ "neovim",
3601+ "nvim",
3602+ "vim"
3603+ ]
3604+ },
3605+ {
3606+ "type": "github",
3607+ "username": "slydragonn",
3608+ "repo": "dotfiles",
3609+ "tags": [
3610+ "dotfiles",
3611+ "editor",
3612+ "ide",
3613+ "lua",
3614+ "neovim",
3615+ "neovim-config",
3616+ "neovim-plugin",
3617+ "neovim-setup",
3618+ "powershell",
3619+ "vim"
3620+ ]
3621+ },
3622+ {
3623+ "type": "github",
3624+ "username": "sophiabrandt",
3625+ "repo": "dotfiles",
3626+ "tags": [
3627+ "dotfiles",
3628+ "fish",
3629+ "fish-shell",
3630+ "i3wm",
3631+ "kitty",
3632+ "kitty-terminal",
3633+ "manjaro-i3-dotfiles",
3634+ "manjaro-linux",
3635+ "neovim",
3636+ "neovim-dotfiles",
3637+ "tmux",
3638+ "vim",
3639+ "vimrc"
3640+ ]
3641+ },
3642+ {
3643+ "type": "github",
3644+ "username": "sparkcanon",
3645+ "repo": "nvim",
3646+ "tags": [
3647+ "neovim",
3648+ "vim"
3649+ ]
3650+ },
3651+ {
3652+ "type": "github",
3653+ "username": "spikegrobstein",
3654+ "repo": "vim-config",
3655+ "tags": []
3656+ },
3657+ {
3658+ "type": "github",
3659+ "username": "stevenocchipinti",
3660+ "repo": "nvim",
3661+ "tags": [
3662+ "dotfiles",
3663+ "neovim",
3664+ "nvim",
3665+ "vim"
3666+ ]
3667+ },
3668+ {
3669+ "type": "github",
3670+ "username": "Stilesyu",
3671+ "repo": "neovim-config",
3672+ "tags": []
3673+ },
3674+ {
3675+ "type": "github",
3676+ "username": "strika",
3677+ "repo": "neovimfiles",
3678+ "tags": []
3679+ },
3680+ {
3681+ "type": "github",
3682+ "username": "StubbornVegeta",
3683+ "repo": "nvim-config",
3684+ "tags": []
3685+ },
3686+ {
3687+ "type": "github",
3688+ "username": "swapkats",
3689+ "repo": "dotfiles",
3690+ "tags": []
3691+ },
3692+ {
3693+ "type": "github",
3694+ "username": "tamton-aquib",
3695+ "repo": "nvim",
3696+ "tags": [
3697+ "config",
3698+ "lua",
3699+ "neovim",
3700+ "nvim"
3701+ ]
3702+ },
3703+ {
3704+ "type": "github",
3705+ "username": "tanael",
3706+ "repo": "neovim-ide",
3707+ "tags": []
3708+ },
3709+ {
3710+ "type": "github",
3711+ "username": "tavisto",
3712+ "repo": "nvim-configs",
3713+ "tags": []
3714+ },
3715+ {
3716+ "type": "github",
3717+ "username": "technetos",
3718+ "repo": "neovim_setup",
3719+ "tags": []
3720+ },
3721+ {
3722+ "type": "github",
3723+ "username": "Tenn1518",
3724+ "repo": "neovim-config",
3725+ "tags": []
3726+ },
3727+ {
3728+ "type": "github",
3729+ "username": "TeoDev1611",
3730+ "repo": "astro.nvim",
3731+ "tags": [
3732+ "file",
3733+ "lua",
3734+ "neovim",
3735+ "nvim",
3736+ "plug",
3737+ "vim",
3738+ "vim-configuration",
3739+ "vimrc"
3740+ ]
3741+ },
3742+ {
3743+ "type": "github",
3744+ "username": "the-alpha-developer",
3745+ "repo": "neovim-example-config",
3746+ "tags": []
3747+ },
3748+ {
3749+ "type": "github",
3750+ "username": "thebashpotato",
3751+ "repo": "MattDev_NvimConfig",
3752+ "tags": [
3753+ "coc",
3754+ "config",
3755+ "configuration",
3756+ "cpp",
3757+ "fisa",
3758+ "neovim",
3759+ "nvim",
3760+ "nvm",
3761+ "python",
3762+ "rust",
3763+ "vim",
3764+ "webdev"
3765+ ]
3766+ },
3767+ {
3768+ "type": "github",
3769+ "username": "thecasualcoder",
3770+ "repo": "neovim-dotfiles",
3771+ "tags": [
3772+ "neovim",
3773+ "neovim-configuration",
3774+ "neovim-dotfiles",
3775+ "vimr"
3776+ ]
3777+ },
3778+ {
3779+ "type": "github",
3780+ "username": "TheCodeTherapy",
3781+ "repo": "fatbrains",
3782+ "tags": []
3783+ },
3784+ {
3785+ "type": "github",
3786+ "username": "theniceboy",
3787+ "repo": "nvim",
3788+ "tags": [
3789+ "coc",
3790+ "colemak",
3791+ "config",
3792+ "language-server-protocol",
3793+ "neovim",
3794+ "nvim",
3795+ "nvimrc",
3796+ "vim",
3797+ "vimrc"
3798+ ]
3799+ },
3800+ {
3801+ "type": "github",
3802+ "username": "theodelrieu",
3803+ "repo": "dotfiles",
3804+ "tags": []
3805+ },
3806+ {
3807+ "type": "github",
3808+ "username": "Theory-of-Everything",
3809+ "repo": "nii-nvim",
3810+ "tags": [
3811+ "config",
3812+ "hacktober",
3813+ "linux",
3814+ "lua",
3815+ "neovim",
3816+ "neovim-config",
3817+ "nvim",
3818+ "telescope",
3819+ "vim"
3820+ ]
3821+ },
3822+ {
3823+ "type": "github",
3824+ "username": "thinca",
3825+ "repo": "action-setup-vim",
3826+ "tags": []
3827+ },
3828+ {
3829+ "type": "github",
3830+ "username": "tiagopog",
3831+ "repo": "vimfiles",
3832+ "tags": []
3833+ },
3834+ {
3835+ "type": "github",
3836+ "username": "Tiger-0512",
3837+ "repo": "dotfiles",
3838+ "tags": [
3839+ "alacritty",
3840+ "dotfiles",
3841+ "gitui",
3842+ "hammerspoon",
3843+ "neovim",
3844+ "tigrc",
3845+ "tmux-conf",
3846+ "vimrc",
3847+ "zshrc"
3848+ ]
3849+ },
3850+ {
3851+ "type": "github",
3852+ "username": "timnolte",
3853+ "repo": "neovim-ide-setup",
3854+ "tags": []
3855+ },
3856+ {
3857+ "type": "github",
3858+ "username": "tlvince",
3859+ "repo": "neovim-config",
3860+ "tags": [
3861+ "dotfiles",
3862+ "neovim"
3863+ ]
3864+ },
3865+ {
3866+ "type": "github",
3867+ "username": "togglebyte",
3868+ "repo": "nvim",
3869+ "tags": []
3870+ },
3871+ {
3872+ "type": "github",
3873+ "username": "tony",
3874+ "repo": "vim-config-framework",
3875+ "tags": [
3876+ "dot-config",
3877+ "dotfiles",
3878+ "vim",
3879+ "vimrc"
3880+ ]
3881+ },
3882+ {
3883+ "type": "github",
3884+ "username": "traxys",
3885+ "repo": "nvim-flake",
3886+ "tags": []
3887+ },
3888+ {
3889+ "type": "github",
3890+ "username": "tsjazil",
3891+ "repo": "luavim",
3892+ "tags": [
3893+ "lua",
3894+ "nvim"
3895+ ]
3896+ },
3897+ {
3898+ "type": "github",
3899+ "username": "ttys3",
3900+ "repo": "nvim-config",
3901+ "tags": [
3902+ "lua",
3903+ "neovim",
3904+ "nvim",
3905+ "vimrc"
3906+ ]
3907+ },
3908+ {
3909+ "type": "github",
3910+ "username": "tuffgniuz",
3911+ "repo": "nvim.lua",
3912+ "tags": []
3913+ },
3914+ {
3915+ "type": "github",
3916+ "username": "TunkShif",
3917+ "repo": "nvim",
3918+ "tags": [
3919+ "fennel",
3920+ "neovim",
3921+ "neovim-dotfiles"
3922+ ]
3923+ },
3924+ {
3925+ "type": "github",
3926+ "username": "twistedgitbox",
3927+ "repo": "mydotfiles",
3928+ "tags": []
3929+ },
3930+ {
3931+ "type": "github",
3932+ "username": "UltiRequiem",
3933+ "repo": "neovim",
3934+ "tags": [
3935+ "neovim-config",
3936+ "neovim-configuration",
3937+ "neovim-dotfiles",
3938+ "nvim-lsp",
3939+ "vim-configuration",
3940+ "vimrc"
3941+ ]
3942+ },
3943+ {
3944+ "type": "github",
3945+ "username": "UltiRequiem",
3946+ "repo": "UltiVim",
3947+ "tags": [
3948+ "lua",
3949+ "neovim",
3950+ "neovim-configuration",
3951+ "neovim-dotfiles",
3952+ "neovim-setup",
3953+ "vim",
3954+ "vimrc"
3955+ ]
3956+ },
3957+ {
3958+ "type": "github",
3959+ "username": "Ultra-Code",
3960+ "repo": "awesome-neovim",
3961+ "tags": [
3962+ "awesome-neovim",
3963+ "lspconfig",
3964+ "lua",
3965+ "neovim",
3966+ "neovim-config",
3967+ "neovim-dotfiles",
3968+ "neovim-lsp",
3969+ "neovim-lua",
3970+ "neovim-lua-plugin",
3971+ "neovim-plugin",
3972+ "nvim",
3973+ "paq-nvim",
3974+ "treesitter"
3975+ ]
3976+ },
3977+ {
3978+ "type": "github",
3979+ "username": "umtdemr",
3980+ "repo": "Dotfiles",
3981+ "tags": [
3982+ "dotfiles",
3983+ "dotfiles-macos",
3984+ "iterm2",
3985+ "neovim",
3986+ "tmux",
3987+ "tmux-conf",
3988+ "zsh",
3989+ "zsh-configuration"
3990+ ]
3991+ },
3992+ {
3993+ "type": "github",
3994+ "username": "uncomfyhalomacro",
3995+ "repo": "erudite-vim",
3996+ "tags": [
3997+ "julia",
3998+ "julialang",
3999+ "lua",
4000+ "neovim",
4001+ "neovim-dotfiles",
4002+ "nvim",
4003+ "vim"
4004+ ]
4005+ },
4006+ {
4007+ "type": "github",
4008+ "username": "ursachecodrut",
4009+ "repo": "nvim",
4010+ "tags": []
4011+ },
4012+ {
4013+ "type": "github",
4014+ "username": "usirin",
4015+ "repo": "init.lua",
4016+ "tags": []
4017+ },
4018+ {
4019+ "type": "github",
4020+ "username": "VapourNvim",
4021+ "repo": "VapourNvim",
4022+ "tags": [
4023+ "ide",
4024+ "lua",
4025+ "neovim",
4026+ "vim"
4027+ ]
4028+ },
4029+ {
4030+ "type": "github",
4031+ "username": "verdverm",
4032+ "repo": "neoverm",
4033+ "tags": []
4034+ },
4035+ {
4036+ "type": "github",
4037+ "username": "Vim-BR",
4038+ "repo": "vim",
4039+ "tags": []
4040+ },
4041+ {
4042+ "type": "github",
4043+ "username": "VladPetriv",
4044+ "repo": "setup-neovim",
4045+ "tags": [
4046+ "cli",
4047+ "configuration",
4048+ "go",
4049+ "nvim"
4050+ ]
4051+ },
4052+ {
4053+ "type": "github",
4054+ "username": "voitd",
4055+ "repo": "dotfiles",
4056+ "tags": [
4057+ "dotfiles",
4058+ "fish",
4059+ "kitty",
4060+ "macos",
4061+ "nvim",
4062+ "tmux"
4063+ ]
4064+ },
4065+ {
4066+ "type": "github",
4067+ "username": "VonHeikemen",
4068+ "repo": "lsp-zero.nvim",
4069+ "tags": [
4070+ "language-server-protocol",
4071+ "lsp",
4072+ "neovim",
4073+ "nvim"
4074+ ]
4075+ },
4076+ {
4077+ "type": "github",
4078+ "username": "VonHeikemen",
4079+ "repo": "nvim-lsp-sans-plugins",
4080+ "tags": []
4081+ },
4082+ {
4083+ "type": "github",
4084+ "username": "VonHeikemen",
4085+ "repo": "nvim-starter",
4086+ "tags": [
4087+ "lua",
4088+ "neovim"
4089+ ]
4090+ },
4091+ {
4092+ "type": "github",
4093+ "username": "Vourliotis",
4094+ "repo": "nvim",
4095+ "tags": []
4096+ },
4097+ {
4098+ "type": "github",
4099+ "username": "vuhuucuong",
4100+ "repo": "dotfiles",
4101+ "tags": [
4102+ "dotfiles",
4103+ "neovim",
4104+ "neovim-dotfiles"
4105+ ]
4106+ },
4107+ {
4108+ "type": "github",
4109+ "username": "vuki656",
4110+ "repo": "nvim-config",
4111+ "tags": [
4112+ "nvim"
4113+ ]
4114+ },
4115+ {
4116+ "type": "github",
4117+ "username": "vvnraman",
4118+ "repo": "neovim-config",
4119+ "tags": [
4120+ "neovim",
4121+ "neovim-config",
4122+ "neovim-configuration",
4123+ "neovim-dotfiles",
4124+ "neovim-lua"
4125+ ]
4126+ },
4127+ {
4128+ "type": "github",
4129+ "username": "wavded",
4130+ "repo": "dotfiles",
4131+ "tags": []
4132+ },
4133+ {
4134+ "type": "github",
4135+ "username": "wbthomason",
4136+ "repo": "packer.nvim",
4137+ "tags": [
4138+ "lua",
4139+ "neovim",
4140+ "neovim-plugin",
4141+ "nvim",
4142+ "package-manager",
4143+ "packer",
4144+ "plugin-manager"
4145+ ]
4146+ },
4147+ {
4148+ "type": "github",
4149+ "username": "wgurecky",
4150+ "repo": "nvim",
4151+ "tags": [
4152+ "configuration",
4153+ "dotfiles",
4154+ "language-server-protocol",
4155+ "neovim"
4156+ ]
4157+ },
4158+ {
4159+ "type": "github",
4160+ "username": "williamboman",
4161+ "repo": "nvim-config",
4162+ "tags": []
4163+ },
4164+ {
4165+ "type": "github",
4166+ "username": "windwp",
4167+ "repo": "nvim",
4168+ "tags": []
4169+ },
4170+ {
4171+ "type": "github",
4172+ "username": "wuelnerdotexe",
4173+ "repo": "nvim",
4174+ "tags": [
4175+ "dotfiles",
4176+ "hacktoberfest",
4177+ "neovim",
4178+ "wuelnerdotexe"
4179+ ]
4180+ },
4181+ {
4182+ "type": "github",
4183+ "username": "x-zvf",
4184+ "repo": "dotfiles",
4185+ "tags": [
4186+ "alacritty",
4187+ "arcolinux",
4188+ "dotfiles",
4189+ "terminal"
4190+ ]
4191+ },
4192+ {
4193+ "type": "github",
4194+ "username": "xamfy",
4195+ "repo": "neovim-setup",
4196+ "tags": []
4197+ },
4198+ {
4199+ "type": "github",
4200+ "username": "xbot",
4201+ "repo": "dotvim",
4202+ "tags": []
4203+ },
4204+ {
4205+ "type": "github",
4206+ "username": "Xuyuanp",
4207+ "repo": "vimrc",
4208+ "tags": [
4209+ "dotfiles",
4210+ "lsp",
4211+ "lua",
4212+ "neovim",
4213+ "nvim",
4214+ "vi",
4215+ "vim",
4216+ "viml",
4217+ "vimrc"
4218+ ]
4219+ },
4220+ {
4221+ "type": "github",
4222+ "username": "ye-junzhe",
4223+ "repo": "BetterNvim",
4224+ "tags": [
4225+ "ide",
4226+ "neovim"
4227+ ]
4228+ },
4229+ {
4230+ "type": "github",
4231+ "username": "yeuxacucodon",
4232+ "repo": "neovim-config",
4233+ "tags": [
4234+ "dotfiles",
4235+ "lua",
4236+ "neovim",
4237+ "neovim-dotfiles",
4238+ "nvim"
4239+ ]
4240+ },
4241+ {
4242+ "type": "github",
4243+ "username": "yhkaplan",
4244+ "repo": "dotfiles",
4245+ "tags": [
4246+ "dotfiles"
4247+ ]
4248+ },
4249+ {
4250+ "type": "github",
4251+ "username": "yorkox0",
4252+ "repo": "nvim",
4253+ "tags": []
4254+ },
4255+ {
4256+ "type": "github",
4257+ "username": "yutkat",
4258+ "repo": "dotfiles",
4259+ "tags": [
4260+ "archlinux",
4261+ "dotfiles",
4262+ "dunstrc",
4263+ "fedora",
4264+ "i3-config",
4265+ "nvimrc",
4266+ "rofi-config",
4267+ "sway-config",
4268+ "ubuntu",
4269+ "vscode-neovim",
4270+ "wezterm-config",
4271+ "zinit",
4272+ "zshrc"
4273+ ]
4274+ },
4275+ {
4276+ "type": "github",
4277+ "username": "zbirenbaum",
4278+ "repo": "zvim",
4279+ "tags": []
4280+ },
4281+ {
4282+ "type": "github",
4283+ "username": "zchee",
4284+ "repo": ".nvim",
4285+ "tags": [
4286+ "neovim",
4287+ "nvimrc",
4288+ "vimrc"
4289+ ]
4290+ }
4291+ ]
4292+}
+10,
-0
1@@ -703,6 +703,16 @@
2 "plugin-manager"
3 ]
4 },
5+ {
6+ "type": "github",
7+ "username": "chrisgrieser",
8+ "repo": "nvim-alt-substitute",
9+ "tags": [
10+ "plugin",
11+ "command-line",
12+ "editing-support"
13+ ]
14+ },
15 {
16 "type": "github",
17 "username": "chrisgrieser",
+4,
-0
1@@ -33,3 +33,7 @@ export function createResource(p: Partial<Resource> = {}): Resource {
2 ...p,
3 };
4 }
5+
6+export const getResourceId = (d: { username: string; repo: string }) => {
7+ return `${d.username}/${d.repo}`;
8+};
+55,
-3
1@@ -1,9 +1,17 @@
2 import type { FetchRepoProps, Resp } from "./types.ts";
3
4+import { encode } from "./deps.ts";
5+
6+const accessToken = Deno.env.get("GITHUB_ACCESS_TOKEN") || "";
7+const accessUsername = Deno.env.get("GITHUB_USERNAME") || "";
8+export const ghToken = encode(`${accessUsername}:${accessToken}`);
9+
10 function delay(ms: number): Promise<void> {
11 return new Promise((resolve) => setTimeout(() => resolve(), ms));
12 }
13
14+const nextRe = new RegExp(/\<([^<]+)\>; rel="next"/);
15+
16 async function githubApi<D = any>(
17 endpoint: string,
18 token: string,
19@@ -17,14 +25,17 @@ async function githubApi<D = any>(
20 const rateLimitRemaining = parseInt(
21 res.headers.get("X-RateLimit-Remaining") || "0",
22 );
23+ // this value is in seconds, not ms
24 const rateLimitReset = parseInt(res.headers.get("X-RateLimit-Reset") || "0");
25 console.log(`rate limit remaining: ${rateLimitRemaining}`);
26- if (rateLimitRemaining === 1) {
27+ if (rateLimitRemaining === 1 || rateLimitRemaining === 0) {
28 const now = Date.now();
29 const RESET_BUFFER = 500;
30- const wait = rateLimitReset + RESET_BUFFER - now;
31+ const wait = (rateLimitReset * 1000) + RESET_BUFFER - now;
32+ // ms -> s -> min
33+ const mins = Math.ceil(wait / 1000 / 60)
34 console.log(
35- `About to hit github rate limit, waiting ${wait * 1000} seconds`,
36+ `Hit github rate limit, waiting ${mins} mins`,
37 );
38 await delay(wait);
39 }
40@@ -43,8 +54,19 @@ async function githubApi<D = any>(
41 }
42
43 if (res.ok) {
44+ // pagination
45+ let next = "";
46+ const link = res.headers.get("link");
47+ if (link) {
48+ const paginated = nextRe.exec(link || "");
49+ if (paginated && paginated.length > 1) {
50+ next = paginated[1];
51+ }
52+ }
53+
54 return {
55 ok: true,
56+ next,
57 data,
58 };
59 }
60@@ -170,3 +192,33 @@ export async function fetchGithubData(
61 },
62 };
63 }
64+
65+type TopicRepo = RepoData & { full_name: string; topics: string[] };
66+
67+export async function fetchTopics(topic: string, token: string) {
68+ const items: TopicRepo[] = [];
69+ let next = `/search/repositories?q=${topic}&per_page=100`;
70+ // limit the number of pages
71+ // let count = 0;
72+
73+ while (next) {
74+ const result = await githubApi<{ items: TopicRepo[] }>(
75+ next,
76+ token,
77+ );
78+
79+ next = "";
80+
81+ if (result.ok) {
82+ items.push(...result.data.items);
83+
84+ /* count += 1;
85+ if (result.next && count < 3) {
86+ next = result.next;
87+ next = next.replace('https://api.github.com', '');
88+ } */
89+ }
90+ }
91+
92+ return items;
93+}
+28,
-6
1@@ -1,16 +1,36 @@
2 import { marked } from "../deps.ts";
3 import type { Plugin } from "../types.ts";
4
5-clean().catch(console.error);
6+await init().catch(console.error);
7
8-async function clean() {
9- const file = await Deno.readTextFile("./data/db.json");
10+async function init() {
11+ const db = {};
12+ await clean({
13+ htmlDb: db,
14+ dbFile: "./data/db.json",
15+ mdFile: "./data/markdown.json",
16+ });
17+ await clean({
18+ htmlDb: db,
19+ dbFile: "./data/db-config.json",
20+ mdFile: "./data/markdown-config.json",
21+ });
22+ await save(db);
23+}
24+
25+async function clean(
26+ { htmlDb, dbFile, mdFile }: {
27+ htmlDb: { [key: string]: string };
28+ dbFile: string;
29+ mdFile: string;
30+ },
31+) {
32+ const file = await Deno.readTextFile(dbFile);
33 const db = JSON.parse(file.toString());
34- const markdownFile = await Deno.readTextFile("./data/markdown.json");
35+ const markdownFile = await Deno.readTextFile(mdFile);
36 const markdownDb = JSON.parse(markdownFile.toString());
37
38 const plugins = Object.values(db.plugins) as Plugin[];
39- const nextDb: { [key: string]: string } = {};
40 plugins.forEach((plugin) => {
41 console.log(`processing ${plugin.id}`);
42 marked.use({
43@@ -36,9 +56,11 @@ async function clean() {
44 const markdown = markdownDb.markdown[plugin.id];
45 if (!markdown) return;
46 const html = marked(markdown);
47- nextDb[plugin.id] = html;
48+ htmlDb[plugin.id] = html;
49 });
50+}
51
52+async function save(nextDb: { [key: string]: string }) {
53 try {
54 const json = JSON.stringify({ html: nextDb }, null, 2);
55 await Deno.writeTextFile("./data/html.json", json);
+39,
-9
1@@ -1,22 +1,53 @@
2-import scrapeData from "../../data/scrape.json" assert { type: "json" };
3-import manualData from "../../data/manual.json" assert { type: "json" };
4+import scrapePluginData from "../../data/scrape.json" assert { type: "json" };
5+import manualPluginData from "../../data/manual.json" assert { type: "json" };
6+import scrapeConfigData from "../../data/scrape-config.json" assert {
7+ type: "json",
8+};
9+import manualConfigData from "../../data/manual-config.json" assert {
10+ type: "json",
11+};
12
13 import type { Resource, ResourceMap } from "../types.ts";
14+import { getResourceId } from "../entities.ts";
15
16-patch().then(console.log).catch(console.error);
17+init().catch(console.error);
18
19-async function patch() {
20+async function init() {
21+ const plugins = patch({
22+ scrapeData: scrapePluginData as any,
23+ manualData: manualPluginData as any,
24+ });
25+ await Deno.writeTextFile("./data/resources.json", plugins);
26+
27+ const config = patch({
28+ scrapeData: scrapeConfigData as any,
29+ manualData: manualConfigData as any,
30+ });
31+ await Deno.writeTextFile("./data/resources-config.json", config);
32+}
33+
34+interface ResourceContainer {
35+ resources: Resource[];
36+}
37+
38+interface PatchOpt {
39+ scrapeData: ResourceContainer;
40+ manualData: ResourceContainer;
41+}
42+
43+function patch(
44+ { scrapeData, manualData }: PatchOpt,
45+) {
46 const db: ResourceMap = {};
47- const getId = (r: Resource) => `${r.username}/${r.repo}`;
48 const scrapeResources = scrapeData.resources as Resource[];
49 scrapeResources.forEach((r: Resource) => {
50- db[getId(r)] = r;
51+ db[getResourceId(r)] = r;
52 });
53
54 const manualResources = manualData.resources as Resource[];
55 // resource file trumps what we scrape so we can make changes to things like the tags
56 manualResources.forEach((r) => {
57- db[getId(r)] = r;
58+ db[getResourceId(r)] = r;
59 });
60
61 const newResources = Object.values(db).sort((a, b) => {
62@@ -27,6 +58,5 @@ async function patch() {
63 });
64 const data = { resources: newResources };
65 const json = JSON.stringify(data, null, 2);
66-
67- await Deno.writeTextFile("./data/resources.json", json);
68+ return json;
69 }
+26,
-10
1@@ -1,13 +1,13 @@
2 import resourceFile from "../../data/resources.json" assert { type: "json" };
3+import resourceConfigFile from "../../data/resources-config.json" assert {
4+ type: "json",
5+};
6
7-import { encode } from "../deps.ts";
8 import type { Plugin, Resource } from "../types.ts";
9-import { createPlugin } from "../entities.ts";
10-import { fetchGithubData } from "../github.ts";
11+import { createPlugin, getResourceId } from "../entities.ts";
12+import { fetchGithubData, ghToken } from "../github.ts";
13 import { fetchSrhtData } from "../stht.ts";
14
15-const accessToken = Deno.env.get("GITHUB_ACCESS_TOKEN") || "";
16-const accessUsername = Deno.env.get("GITHUB_USERNAME") || "";
17 const srhtToken = Deno.env.get("SRHT_ACCESS_TOKEN") || "";
18
19 const option = Deno.args[0];
20@@ -19,6 +19,11 @@ if (option === "missing") {
21 processResources(resourceFile.resources as Resource[])
22 .then(saveData)
23 .catch(console.error);
24+
25+ console.log("PROCESSING CONFIG RESOURCES");
26+ processResources(Object.values(resourceConfigFile.resources) as Resource[])
27+ .then(saveConfigData)
28+ .catch(console.error);
29 }
30
31 async function processMissingResources() {
32@@ -27,7 +32,7 @@ async function processMissingResources() {
33 const missing: Resource[] = [];
34 const resources = resourceFile.resources as Resource[];
35 resources.forEach((r) => {
36- if (db.plugins[`${r.username}/${r.repo}`]) {
37+ if (db.plugins[getResourceId(r)]) {
38 return;
39 }
40
41@@ -47,8 +52,6 @@ async function processResources(resources: Resource[]) {
42 const plugins: { [key: string]: Plugin } = {};
43 const markdown: { [key: string]: string } = {};
44
45- const ghToken = encode(`${accessUsername}:${accessToken}`);
46-
47 console.log(`Fetching ${resources.length} resources`);
48
49 for (let i = 0; i < resources.length; i += 1) {
50@@ -56,7 +59,7 @@ async function processResources(resources: Resource[]) {
51
52 if (d.type === "srht") {
53 const result = await fetchSrhtData({ ...d, token: srhtToken });
54- const id = `${d.username}/${d.repo}`;
55+ const id = getResourceId(d);
56 if (!result.ok) {
57 console.log(result);
58 continue;
59@@ -84,7 +87,7 @@ async function processResources(resources: Resource[]) {
60 }
61
62 const resp = result.data;
63- const id = `${d.username}/${d.repo}`;
64+ const id = getResourceId(d);
65
66 let updatedAt = "";
67 if (result.data.branch.ok) {
68@@ -130,3 +133,16 @@ async function saveData({
69 await Deno.writeTextFile("./data/db.json", pluginJson);
70 await Deno.writeTextFile("./data/markdown.json", markdownJson);
71 }
72+
73+async function saveConfigData({
74+ plugins,
75+ markdown,
76+}: {
77+ plugins: { [key: string]: Plugin };
78+ markdown: { [key: string]: string };
79+}) {
80+ const pluginJson = JSON.stringify({ plugins }, null, 2);
81+ const markdownJson = JSON.stringify({ markdown });
82+ await Deno.writeTextFile("./data/db-config.json", pluginJson);
83+ await Deno.writeTextFile("./data/markdown-config.json", markdownJson);
84+}
+60,
-22
1@@ -1,13 +1,45 @@
2 import resourceFile from "../../data/resources.json" assert { type: "json" };
3+import resourceConfigFile from "../../data/resources-config.json" assert {
4+ type: "json",
5+};
6 import manualFile from "../../data/manual.json" assert { type: "json" };
7+import manualConfigFile from "../../data/manual-config.json" assert {
8+ type: "json",
9+};
10
11-import type { Resource } from "../types.ts";
12-import { createResource } from "../entities.ts";
13+import type { Resource, ResourceMap } from "../types.ts";
14+import { createResource, getResourceId } from "../entities.ts";
15+
16+type Option = "plugin" | "config";
17
18 const forges = ["github", "srht"];
19 const forgesStr = forges.join(",");
20
21-async function init() {
22+let option = Deno.args[0];
23+if (!option) {
24+ option = "plugin";
25+}
26+if (option !== "config" && option !== "plugin") {
27+ throw new Error('"config" and "plugin" are the only two choices');
28+}
29+
30+const resource = cli(option as Option);
31+save(resource).catch(console.error);
32+
33+async function save(resource: Resource | undefined) {
34+ if (!resource) return;
35+ if (option === "plugin") {
36+ manualFile.resources.push(resource);
37+ const json = JSON.stringify(manualFile, null, 2);
38+ await Deno.writeTextFile("./data/manual.json", json);
39+ } else {
40+ manualConfigFile.resources.push(resource);
41+ const json = JSON.stringify(manualConfigFile, null, 2);
42+ await Deno.writeTextFile("./data/manual-config.json", json);
43+ }
44+}
45+
46+function cli(opt: "config" | "plugin") {
47 const type = prompt(`code forge [${forgesStr}] (default: github):`) ||
48 "github";
49 if (!forges.includes(type)) {
50@@ -20,12 +52,25 @@ async function init() {
51 username = username.replace("~", "");
52 }
53
54- const foundResource = (resourceFile.resources as Resource[]).find(
55- (r) => `${r.username}/${r.repo}` === name,
56- );
57- if (foundResource) {
58- console.log(`${name} aleady found in resources, not adding`);
59- return;
60+ if (opt === "plugin") {
61+ const foundResource = (resourceFile.resources as Resource[]).find(
62+ (r) => getResourceId(r) === name,
63+ );
64+ if (foundResource) {
65+ console.log(`${name} aleady found in resources, not adding`);
66+ return;
67+ }
68+ } else {
69+ const resources = Object.values(
70+ resourceConfigFile.resources as ResourceMap,
71+ );
72+ const foundResource = resources.find(
73+ (r) => getResourceId(r) === name,
74+ );
75+ if (foundResource) {
76+ console.log(`${name} aleady found in resources, not adding`);
77+ return;
78+ }
79 }
80
81 console.log(
82@@ -34,17 +79,10 @@ async function init() {
83 const tagsRes = prompt("tags (comma separated):") || "";
84 const tags = tagsRes.split(",");
85
86- manualFile.resources.push(
87- createResource({
88- type: type as any,
89- username,
90- repo,
91- tags,
92- }),
93- );
94-
95- const json = JSON.stringify(manualFile, null, 2);
96- await Deno.writeTextFile("./data/manual.json", json);
97+ return createResource({
98+ type: type as any,
99+ username,
100+ repo,
101+ tags,
102+ });
103 }
104-
105-init().catch(console.error);
+48,
-0
1@@ -0,0 +1,48 @@
2+import { fetchTopics, ghToken } from "../github.ts";
3+import { createResource, getResourceId } from "../entities.ts";
4+import { ResourceMap } from "../types.ts";
5+
6+init().catch(console.error);
7+
8+async function init() {
9+ const topics = [
10+ "neovim-config",
11+ "neovim-configs",
12+ "neovim-dotfiles",
13+ "neovim-setup",
14+ "neovim-configuration",
15+ ];
16+ const resources: ResourceMap = {};
17+ for (const topic of topics) {
18+ await dl(resources, topic);
19+ }
20+ console.log(`Found ${Object.values(resources).length} repos`);
21+ await save(resources);
22+}
23+
24+async function save(resources: ResourceMap) {
25+ const data = { resources: Object.values(resources) };
26+ const json = JSON.stringify(data, null, 2);
27+
28+ await Deno.writeTextFile("./data/scrape-config.json", json);
29+}
30+
31+async function dl(resources: ResourceMap, topic: string) {
32+ const repos = await fetchTopics(topic, ghToken);
33+
34+ console.log(`${topic} found ${repos.length} repos`);
35+ const resourceList = repos.map((repo) => {
36+ const [username, repoName] = repo.full_name.split("/");
37+ return createResource({
38+ username,
39+ repo: repoName,
40+ tags: repo.topics,
41+ });
42+ });
43+ const newResources = resourceList.reduce<ResourceMap>((acc, repo) => {
44+ acc[getResourceId(repo)] = repo;
45+ return acc;
46+ }, resources);
47+
48+ return newResources;
49+}
+131,
-2
1@@ -1,10 +1,12 @@
2-import dbFile from "../../data/db.json" assert { type: "json" };
3 import htmlFile from "../../data/html.json" assert { type: "json" };
4+import dbFile from "../../data/db.json" assert { type: "json" };
5+import configDbFile from "../../data/db-config.json" assert { type: "json" };
6
7 import { dirname } from "../deps.ts";
8 import { format, relativeTimeFromDates } from "../date.ts";
9 import { derivePluginData } from "../plugin-data.ts";
10 import type { Plugin, PluginData, PluginMap, Tag, TagMap } from "../types.ts";
11+import { getResourceId } from "../entities.ts";
12
13 async function createFile(fname: string, data: string) {
14 await Deno.mkdir(dirname(fname), { recursive: true });
15@@ -85,6 +87,7 @@ const createHtmlFile = ({ head, body }: { head: string; body: string }) => {
16 const createNav = () => {
17 const links = [
18 ["/", "plugins"],
19+ ["/c", "configs"],
20 ["/about", "about"],
21 ];
22
23@@ -353,6 +356,94 @@ const createSearchPage = (data: PluginData, by: keyof Plugin) => {
24 return createHtmlFile({ head, body });
25 };
26
27+const createSearchConfigPage = (data: PluginData, by: keyof Plugin) => {
28+ const pluginsStr = data.plugins.sort(onSort(by)).reduce((acc, plugin) => {
29+ const plug = createPluginItem(plugin, getTags(data.tagDb, plugin.tags));
30+ return `${acc}\n${plug}`;
31+ }, "");
32+ const tagListStr = data.tags.reduce(
33+ (acc, tag) => `${acc}\n${createTag(tag)}`,
34+ "",
35+ );
36+ const sortStr = () => {
37+ let str = "";
38+ if (by === "stars") {
39+ str += "stars\n";
40+ } else {
41+ str += '<a href="/c">stars</a>\n';
42+ }
43+
44+ if (by === "createdAt") {
45+ str += "created\n";
46+ } else {
47+ str += '<a href="/c/created">created</a>\n';
48+ }
49+
50+ if (by === "updatedAt") {
51+ str += "updated\n";
52+ } else {
53+ str += '<a href="/c/updated">updated</a>\n';
54+ }
55+
56+ return str;
57+ };
58+
59+ const head = `
60+<title>neovimcraft</title>
61+ <meta property="og:title" content="neovimcraft" />
62+ <meta
63+ name="description"
64+ content="Search through our curated neovim config directory."
65+ />
66+ <meta
67+ property="og:description"
68+ content="Search through our curated neovim config directory."
69+ />
70+ <script src="/nav.js" type="text/javascript"></script>
71+ <script src="/client.js" type="text/javascript"></script>
72+`;
73+ const nav = createNav();
74+ const body = `${nav}
75+<div class="search_container">
76+ <div class="search_view">
77+ <span class="search_icon">${createIcon("search", "search")}</span>
78+ <input
79+ id="search"
80+ value=""
81+ placeholder="search to find a config"
82+ autocapitalize="off"
83+ />
84+ <span class="search_clear_icon" id="search_clear">
85+ ${createIcon("x-circle", "clear search")}
86+ </span>
87+ </div>
88+ <div class="tagline">
89+ <span>Search through our curated list of neovim configs. </span>
90+ <span><a href="https://github.com/neurosnap/neovimcraft#want-to-submit-a-config">Submit a config</a></span>
91+ </div>
92+
93+ <div class="sidebar">
94+ ${tagListStr}
95+ </div>
96+ <div class="rightbar">
97+ ${createAds()}
98+ </div>
99+ <div class="plugins">
100+ <div class="plugins_container">
101+ <div class="search_results">${data.plugins.length} results</div>
102+ <div id="sort_links">
103+ ${sortStr()}
104+ </div>
105+ <div id="plugins_list">
106+ ${pluginsStr}
107+ </div>
108+ </div>
109+ </div>
110+</div>`;
111+
112+ return createHtmlFile({ head, body });
113+};
114+
115 const createPluginView = (plugin: Plugin, tags: Tag[]) => {
116 const tagsStr = tags.reduce((acc, tag) => {
117 acc += createTag(tag, false);
118@@ -455,12 +546,45 @@ async function render(data: PluginData, htmlData: { [key: string]: string }) {
119 "./static/updated/index.html",
120 createSearchPage(data, "updatedAt"),
121 ),
122+
123 createFile("./static/about/index.html", createAboutPage()),
124 ];
125
126 data.plugins.forEach((plugin) => {
127 const tags = getTags(data.tagDb, plugin.tags);
128- const id = `${plugin.username}/${plugin.repo}`;
129+ const id = getResourceId(plugin);
130+ const html = htmlData[id] || "";
131+ const fname =
132+ `./static/plugin/${plugin.username}/${plugin.repo}/index.html`;
133+ const page = createPluginPage(plugin, tags, html);
134+ files.push(createFile(fname, page));
135+ });
136+
137+ await Promise.all(files);
138+}
139+
140+async function renderConfig(
141+ data: PluginData,
142+ htmlData: { [key: string]: string },
143+) {
144+ const files = [
145+ createFile(
146+ "./static/c/index.html",
147+ createSearchConfigPage(data, "stars"),
148+ ),
149+ createFile(
150+ "./static/c/created/index.html",
151+ createSearchConfigPage(data, "createdAt"),
152+ ),
153+ createFile(
154+ "./static/c/updated/index.html",
155+ createSearchConfigPage(data, "updatedAt"),
156+ ),
157+ ];
158+
159+ data.plugins.forEach((plugin) => {
160+ const tags = getTags(data.tagDb, plugin.tags);
161+ const id = getResourceId(plugin);
162 const html = htmlData[id] || "";
163 const fname =
164 `./static/plugin/${plugin.username}/${plugin.repo}/index.html`;
165@@ -476,6 +600,11 @@ interface HTMLFile {
166 }
167
168 const htmlData = (htmlFile as HTMLFile).html;
169+
170 const pluginMap = (dbFile as any).plugins as PluginMap;
171 const pluginData = derivePluginData(pluginMap);
172 render(pluginData, htmlData).then(console.log).catch(console.error);
173+
174+const configMap = (configDbFile as any).plugins as PluginMap;
175+const configData = derivePluginData(configMap);
176+renderConfig(configData, htmlData).then(console.log).catch(console.error);
+1,
-0
1@@ -45,6 +45,7 @@ export type ResourceMap = { [key: string]: Resource };
2
3 export interface ApiSuccess<D = any> {
4 ok: true;
5+ next?: string;
6 data: D;
7 }
8
+1,
-1
1@@ -253,7 +253,7 @@ img {
2 .links {
3 display: flex;
4 justify-content: space-between;
5- width: 150px;
6+ width: 200px;
7 }
8
9 .link {