From f0b8c2a5a87c36b9fe4e300d7cbcc6f6c6aa614b Mon Sep 17 00:00:00 2001 From: Zedhugh Chen Date: Thu, 3 Oct 2024 00:47:08 +0800 Subject: [PATCH] add prisma support --- .gitignore | 1 + .gitmodules | 6 ++++++ init.el | 1 + lisp/init-prisma.el | 26 ++++++++++++++++++++++++++ site-lisp/prisma-ts-mode | 1 + tree-sitter-langs/tree-sitter-prisma | 1 + 6 files changed, 36 insertions(+) create mode 100644 lisp/init-prisma.el create mode 160000 site-lisp/prisma-ts-mode create mode 160000 tree-sitter-langs/tree-sitter-prisma diff --git a/.gitignore b/.gitignore index 57c639b..d49b0cb 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ /games/ /tramp /eshell/ +/tree-sitter/ diff --git a/.gitmodules b/.gitmodules index 5a1a157..32eb21f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -193,3 +193,9 @@ [submodule "site-lisp/graphviz-dot-mode"] path = site-lisp/graphviz-dot-mode url = https://github.com/ppareit/graphviz-dot-mode.git +[submodule "site-lisp/prisma-ts-mode"] + path = site-lisp/prisma-ts-mode + url = https://github.com/nverno/prisma-ts-mode.git +[submodule "tree-sitter-langs/tree-sitter-prisma"] + path = tree-sitter-langs/tree-sitter-prisma + url = https://github.com/victorhqc/tree-sitter-prisma.git diff --git a/init.el b/init.el index f236b2b..7dba3c9 100644 --- a/init.el +++ b/init.el @@ -89,6 +89,7 @@ If freezing sometimes, decrease it. If stuttering, increase it.") (require 'init-markdown) (require 'init-media) (require 'init-plantuml) +(require 'init-prisma) (setq custom-file (expand-file-name "custom.el" creature/cache-dir)) diff --git a/lisp/init-prisma.el b/lisp/init-prisma.el new file mode 100644 index 0000000..005f94e --- /dev/null +++ b/lisp/init-prisma.el @@ -0,0 +1,26 @@ +;; -*- coding: utf-8; lexical-binding: t; -*- + +(require 'init-package) + +(add-pkg-in-pkg-dir "prisma-ts-mode") +(autoload 'prisma-ts-mode "prisma-ts-mode" "" t) +;; remember run `treesit-install-language-grammar' command to install `prisma' +(add-to-list + 'treesit-language-source-alist + (list + 'prisma + (file-truename + (file-name-concat + (file-name-directory (or load-file-name buffer-file-name)) + "../tree-sitter-langs/tree-sitter-prisma")))) +(add-to-list 'auto-mode-alist '("\\.prisma$" . prisma-ts-mode)) + +;; language server is `@prisma/language-server', install it by npm/pnpm/yarn. +(with-eval-after-load 'eglot + (add-to-list 'eglot-server-programs + '(prisma-ts-mode . ("prisma-language-server" "--stdio")))) + +(add-hook 'prisma-ts-mode-hook #'eglot-ensure) + + +(provide 'init-prisma) diff --git a/site-lisp/prisma-ts-mode b/site-lisp/prisma-ts-mode new file mode 160000 index 0000000..a702998 --- /dev/null +++ b/site-lisp/prisma-ts-mode @@ -0,0 +1 @@ +Subproject commit a7029980140ae60612ef876efa17ab81bf4b3add diff --git a/tree-sitter-langs/tree-sitter-prisma b/tree-sitter-langs/tree-sitter-prisma new file mode 160000 index 0000000..eca2596 --- /dev/null +++ b/tree-sitter-langs/tree-sitter-prisma @@ -0,0 +1 @@ +Subproject commit eca2596a355b1a9952b4f80f8f9caed300a272b5