From 171ea46e65a8e03d88b37a0989e3c7e524ddae0c Mon Sep 17 00:00:00 2001 From: Rutherther Date: Fri, 20 Jun 2025 10:48:39 +0200 Subject: [PATCH] feat: csharp functions for yasnippets --- init.el | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/init.el b/init.el index f839ffe..1157f8e 100644 --- a/init.el +++ b/init.el @@ -1234,10 +1234,29 @@ (my-use-package csharp-mode :ensure nil :after eglot - :mode (("\\.cs\\'" . csharp-ts-mode)) + :mode (("\\.cs\\'" . csharp-mode)) :config (my/indent-variable-mode-alist-add csharp-mode c-basic-offset) - (my/indent-variable-mode-alist-add csharp-ts-mode csharp-ts-mode-indent-offset)) + (my/indent-variable-mode-alist-add csharp-ts-mode csharp-ts-mode-indent-offset) + + (defun find-project-root () + (interactive) + (if (ignore-errors (eproject-root)) + (eproject-root) + (or (find-git-repo (buffer-file-name)) (file-name-directory (buffer-file-name))))) + + (defun find-git-repo (dir) + (if (string= "/" dir) + nil + (if (file-exists-p (expand-file-name "../.git/" dir)) + dir + (find-git-repo (expand-file-name "../" dir))))) + + (defun file-path-to-namespace () + (interactive) + (let ((root (find-project-root)) + (base (file-name-nondirectory buffer-file-name))) + (substring (replace-regexp-in-string "/" "\." (substring buffer-file-name (length root) (* -1 (length base))) t t) 0 -1)))) ;; Sh, Bash -- 2.49.0