1 files changed, 21 insertions(+), 2 deletions(-)
M init.el
M init.el => init.el +21 -2
@@ 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