aboutsummaryrefslogtreecommitdiffstats
path: root/oni-csharp
diff options
context:
space:
mode:
authorGravatar Tom Willemse2026-05-28 02:12:40 -0700
committerGravatar Tom Willemse2026-05-28 02:12:40 -0700
commit09a4099586657170cbdcff071b2d0fac5ed133b7 (patch)
tree8e8df3ca47bf2e89b430eb4f77e329dc78946320 /oni-csharp
parenta44d06182fbcb6b424b4ac699c69f7132c68acb6 (diff)
downloademacs-config-09a4099586657170cbdcff071b2d0fac5ed133b7.tar.gz
emacs-config-09a4099586657170cbdcff071b2d0fac5ed133b7.zip
oni-yasnippet: Move all snippets to ‘oni-yasnippet’
There is no real point in having them all separate. Having them all in a single place makes them much easier to manage.
Diffstat (limited to 'oni-csharp')
-rw-r--r--oni-csharp/Eldev13
-rw-r--r--oni-csharp/oni-csharp.el259
-rw-r--r--oni-csharp/snippets/csharp-mode/testm9
-rw-r--r--oni-csharp/snippets/nxml-mode/Import6
4 files changed, 0 insertions, 287 deletions
diff --git a/oni-csharp/Eldev b/oni-csharp/Eldev
deleted file mode 100644
index 1ba3134..0000000
--- a/oni-csharp/Eldev
+++ /dev/null
@@ -1,13 +0,0 @@
-; -*- mode: emacs-lisp; lexical-binding: t -*-
-
-;; Uncomment some calls below as needed for your project.
-(eldev-use-package-archive 'gnu-elpa)
-;(eldev-use-package-archive 'nongnu-elpa)
-(eldev-use-package-archive 'melpa)
-(eldev-use-package-archive `("oni" . ,(expand-file-name "../bin")))
-
-(eldev-use-plugin 'autoloads)
-
-(setf eldev-files-to-package
- `(:or ,eldev-files-to-package
- '("*.el" "./snippets/**/*")))
diff --git a/oni-csharp/oni-csharp.el b/oni-csharp/oni-csharp.el
deleted file mode 100644
index 8451d93..0000000
--- a/oni-csharp/oni-csharp.el
+++ /dev/null
@@ -1,259 +0,0 @@
-;;; oni-csharp.el --- C# Configuration -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2019 Tom Willemse
-
-;; Author: Tom Willemse <tom@ryuslash.org>
-;; Keywords: local
-;; Version: 2023.0525.001714
-;; Package-Requires: (csharp-mode oni-company oni-flycheck oni-yasnippet oni-hydra oni-lsp oni-smartparens)
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-
-;; My C# configuration. This configuration enables ‘rainbow-delimiters-mode’.
-
-;;; Code:
-
-(require 'company)
-(require 'csharp-mode)
-(require 'hydra)
-(require 'yasnippet)
-
-(defconst oni-csharp-root
- (file-name-directory
- (or load-file-name
- (buffer-file-name)))
- "The directory where ‘oni-csharp’ was loaded from.")
-
-(defconst oni-csharp-snippets-dir
- (expand-file-name "snippets" oni-csharp-root)
- "The directory where ‘oni-csharp’ stores its snippets.")
-
-(defcustom oni-csharp-devenv-executable
- "\"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\Common7\\IDE\\devenv.com\""
- "The location of the devenv.com executable."
- :group 'oni-csharp)
-
-(defvar oni-csharp--projects (make-hash-table :test 'equal))
-
-(defhydra oni-csharp-hydra (:color teal :hint nil)
- "
-^Compile^
-^^------------
-_cp_: Project
-_cs_: Solution
-^^
-"
- ("cp" oni-csharp-compile-project)
- ("cs" oni-csharp-compile-solution))
-
-(defun oni-csharp-compile-solution ()
- (interactive)
- (let ((compile-command (concat oni-csharp-devenv-executable " /Build Debug " (oni-csharp-locate-dominating-file-wildcard "*.sln"))))
- (compile compile-command)))
-
-(defun oni-csharp-locate-dominating-file-wildcard (filename)
- (let (file-list
- (default-directory default-directory))
- (while (and (null file-list)
- (string-prefix-p (projectile-project-root) default-directory))
- (setq file-list (file-expand-wildcards filename t)
- default-directory (file-name-directory (directory-file-name default-directory))))
- (car file-list)))
-
-(defun oni-csharp-compile-project ()
- (interactive)
- (let ((compile-command (concat oni-csharp-devenv-executable " /Build Debug " (oni-csharp-locate-dominating-file-wildcard "*.sln") " /project " (oni-csharp-locate-dominating-file-wildcard "*.csproj"))))
- (compile compile-command)))
-
-(defun oni-csharp--auto-fill-mode ()
- "Enable ‘auto-fill-mode’ only for comments."
- (setq-local comment-auto-fill-only-comments t)
- (auto-fill-mode))
-
-(defun oni-csharp-snippets-initialize ()
- "Initialize the snippets for ‘oni-csharp’."
- (when (boundp 'yas-snippet-dirs)
- (add-to-list 'yas-snippet-dirs oni-csharp-snippets-dir t))
- (yas-load-directory oni-csharp-snippets-dir))
-
-(defun oni-csharp--update-style ()
- "Set style rules according to personal (or recommended) preference."
- (c-set-offset 'arglist-intro '+)
- (c-set-offset 'arglist-cont-nonempty '+))
-
-(add-hook 'csharp-mode-hook 'abbrev-mode)
-(add-hook 'csharp-mode-hook 'company-mode)
-(add-hook 'csharp-mode-hook 'display-fill-column-indicator-mode)
-(add-hook 'csharp-mode-hook 'electric-indent-local-mode)
-(add-hook 'csharp-mode-hook 'flycheck-mode)
-(add-hook 'csharp-mode-hook 'lsp)
-(add-hook 'csharp-mode-hook 'oni-csharp--auto-fill-mode)
-(add-hook 'csharp-mode-hook 'oni-csharp--update-style)
-(add-hook 'csharp-mode-hook 'rainbow-delimiters-mode)
-(add-hook 'csharp-mode-hook 'smartparens-mode)
-
-(define-key csharp-mode-map (kbd "C-c SPC") 'oni-csharp-hydra/body)
-
-(define-abbrev csharp-mode-abbrev-table "and" "&&" nil :system t)
-(define-abbrev csharp-mode-abbrev-table "or" "||" nil :system t)
-
-;;;###autoload
-(add-to-list 'auto-mode-alist '("\\.xaml\\'" . nxml-mode))
-
-;;;###autoload
-(add-to-list 'auto-mode-alist '("\\.targets\\'" . nxml-mode))
-
-;;;###autoload
-(add-to-list 'auto-mode-alist '("\\.proj\\'". nxml-mode))
-
-;;;###autoload
-(add-to-list 'auto-mode-alist '("\\.csproj\\'" . nxml-mode))
-
-(with-eval-after-load 'autoinsert
- (add-to-list 'auto-insert-alist
- `(,(rx ".proj" string-end)
- nil
- "<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\" ToolsVersion=\"4.0\">\n " _ "\n</Project>")))
-
-(with-eval-after-load 'lsp-csharp
- (when (eq system-type 'windows-nt)
- (setq lsp-csharp-omnisharp-roslyn-server-dir
- (expand-file-name "~/scoop/apps/omnisharp/current"))))
-
-(with-eval-after-load 'compile
- (add-to-list 'compilation-error-regexp-alist
- `(,(rx (minimal-match (one-or-more digit)) ">"
- (group (any alpha)
- ":\\"
- (minimal-match (one-or-more (any alpha "\\" "."))))
- "("
- (group (minimal-match (one-or-more digit)))
- ","
- (group (minimal-match (one-or-more digit)))
- ","
- (group (minimal-match (one-or-more digit)))
- ","
- (group (minimal-match (one-or-more digit)))
- "): "
- (group "error" (one-or-more any)))
- 1 (2 . 4) (3 . 5) 2 6)))
-
-(with-eval-after-load 'csharp-mode
- (with-eval-after-load 'yasnippet
- (oni-csharp-snippets-initialize)))
-
-;;; Solution mode
-
-(defun oni-csharp-collect-project-names ()
- "Go through the current buffer and collect all the project names."
- (interactive)
- (clrhash oni-csharp--projects)
- (save-excursion
- (goto-char (point-min))
- (while (re-search-forward
- (rx bol
- "Project(\"{"
- (group (minimal-match (1+ (or alphanumeric "-"))))
- "}\") = \""
- (group (minimal-match (1+ any)))
- "\", \""
- (minimal-match (1+ any))
- "\", \"{"
- (group (minimal-match (1+ any)))
- "}\""
- eol)
- nil
- :noerror)
- (puthash (match-string-no-properties 3)
- (match-string-no-properties 2)
- oni-csharp--projects))))
-
-(defun oni-csharp-display-project-names ()
- "Display the project names in the current buffer."
- (interactive)
- (save-excursion
- (goto-char (point-min))
- (while (re-search-forward
- (rx bol
- (zero-or-more whitespace)
- (group
- "{"
- (group (minimal-match (one-or-more (or alphanumeric "-"))))
- "}")
- " = "
- (group
- "{"
- (group (minimal-match (one-or-more (or alphanumeric "-"))))
- "}")
- eol)
- nil
- :noerror)
- (add-text-properties
- (match-beginning 1) (match-end 1)
- (list 'display (gethash (match-string 2) oni-csharp--projects)
- 'face 'font-lock-variable-name-face
- 'help-echo (buffer-substring-no-properties
- (match-beginning 1) (match-end 1))
- 'intangile nil))
- (add-text-properties
- (match-beginning 3) (match-end 3)
- (list 'display (gethash (match-string 4) oni-csharp--projects)
- 'face 'font-lock-variable-name-face
- 'help-echo (buffer-substring-no-properties
- (match-beginning 3) (match-end 3)))))))
-
-(define-derived-mode csharp-solution-mode prog-mode "Sln"
- "A major mode for viewing and editing C# ‘.sln’ files."
- (oni-csharp-collect-project-names)
- (oni-csharp-display-project-names))
-
-;;;###autoload
-(add-to-list 'auto-mode-alist `(,(rx ".sln" eos) . csharp-solution-mode))
-
-(defun oni-csharp-add-file-to-project ()
- (interactive)
- (let* ((file-name (buffer-file-name))
- (project-dir (locate-dominating-file file-name
- (lambda (file)
- (if (file-directory-p file)
- (directory-files file nil (rx ".csproj" eos))
- (string-suffix-p ".csproj" file)))))
- (project-files (directory-files project-dir nil (rx ".csproj" eos)))
- (project-file (cl-case (length project-files)
- (0 (error "No project files found in %s" project-dir))
- (1 (car project-files))
- (t (completing-read "Which project file? " project-files))))
- (relative-file-name (file-relative-name file-name project-dir))
- (project-file-absolute-path (expand-file-name project-file project-dir)))
- (with-current-buffer (find-file-noselect project-file-absolute-path)
- (save-excursion
- (re-search-forward (rx "<Compile"))
- (end-of-line)
- (when (and buffer-file-read-only
- (vc-registered project-file-absolute-path))
- (vc-checkout project-file-absolute-path))
- (insert "\n" "<Compile Include=\"" (string-replace "/" "\\" relative-file-name) "\" />")
- (re-search-backward (rx "<ItemGroup>"))
- (forward-line)
- (let ((start (line-beginning-position)))
- (re-search-forward (rx "</ItemGroup>"))
- (forward-line -1)
- (indent-region start (line-end-position))
- (sort-lines nil start (line-end-position)))
- (save-buffer)))))
-
-(provide 'oni-csharp)
-;;; oni-csharp.el ends here
diff --git a/oni-csharp/snippets/csharp-mode/testm b/oni-csharp/snippets/csharp-mode/testm
deleted file mode 100644
index 4bd243d..0000000
--- a/oni-csharp/snippets/csharp-mode/testm
+++ /dev/null
@@ -1,9 +0,0 @@
-# -*- mode: snippet -*-
-# name: Test Method
-# key: testm
-# --
-[TestMethod]
-public void ${1:TestMethod}()
-{
- $0
-} \ No newline at end of file
diff --git a/oni-csharp/snippets/nxml-mode/Import b/oni-csharp/snippets/nxml-mode/Import
deleted file mode 100644
index bddbf3f..0000000
--- a/oni-csharp/snippets/nxml-mode/Import
+++ /dev/null
@@ -1,6 +0,0 @@
-# -*- mode: snippet -*-
-# name: Import
-# key: imp
-# condition: (string-suffix-p ".proj" (buffer-file-name))
-# --
-<Import Project="$1"/>