diff --git a/init.el b/init.el index 5c5df9fd3b..0b74cc3fc1 100644 --- a/init.el +++ b/init.el @@ -143,6 +143,7 @@ (require 'init-ledger) (require 'init-lua) (require 'init-uiua) +(require 'init-zig) (require 'init-terminals) ;; Extra packages which don't require any configuration diff --git a/lisp/init-corfu.el b/lisp/init-corfu.el index 3119df3469..b127b584a4 100644 --- a/lisp/init-corfu.el +++ b/lisp/init-corfu.el @@ -14,7 +14,7 @@ completion-category-overrides nil) (setq completion-cycle-threshold 4) -(when (maybe-require-package 'corfu) +(when (and (version< "28.1" emacs-version) (maybe-require-package 'corfu)) (setq-default corfu-auto t) (with-eval-after-load 'eshell (add-hook 'eshell-mode-hook (lambda () (setq-local corfu-auto nil)))) diff --git a/lisp/init-editing-utils.el b/lisp/init-editing-utils.el index 065cfb6317..679f8cb5c9 100644 --- a/lisp/init-editing-utils.el +++ b/lisp/init-editing-utils.el @@ -85,7 +85,9 @@ (when (fboundp 'display-line-numbers-mode) (setq-default display-line-numbers-width 3) - (add-hook 'prog-mode-hook 'display-line-numbers-mode)) + (add-hook 'prog-mode-hook 'display-line-numbers-mode) + (add-hook 'yaml-mode-hook 'display-line-numbers-mode) + (add-hook 'yaml-ts-mode-hook 'display-line-numbers-mode)) diff --git a/lisp/init-elpa.el b/lisp/init-elpa.el index f4d19ab1f3..0bc062c1ea 100644 --- a/lisp/init-elpa.el +++ b/lisp/init-elpa.el @@ -15,10 +15,9 @@ ;;; Standard package repositories -(add-to-list 'package-archives '( "melpa" . "http://melpa.org/packages/") t) -;; (setq package-archives '(("gnu" . "http://mirrors.cloud.tencent.com/elpa/gnu/") -;; ("melpa" . "http://mirrors.cloud.tencent.com/elpa/melpa/") -;; ("org" . " http://mirrors.cloud.tencent.com/elpa/org/"))) +(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) +(add-to-list 'package-unsigned-archives "melpa") + ;; Official MELPA Mirror, in case necessary. ;;(add-to-list 'package-archives (cons "melpa-mirror" (concat proto "://www.mirrorservice.org/sites/melpa.org/packages/")) t) diff --git a/lisp/init-git.el b/lisp/init-git.el index 4082463e86..0a14da3aa6 100644 --- a/lisp/init-git.el +++ b/lisp/init-git.el @@ -42,8 +42,7 @@ (maybe-require-package 'magit-todos) -(when (maybe-require-package 'git-commit) - (add-hook 'git-commit-mode-hook 'goto-address-mode)) +(add-hook 'git-commit-mode-hook 'goto-address-mode) ;; Convenient binding for vc-git-grep diff --git a/lisp/init-nix.el b/lisp/init-nix.el index 4f072eb78f..2272f8a662 100644 --- a/lisp/init-nix.el +++ b/lisp/init-nix.el @@ -3,14 +3,18 @@ ;;; Code: (if (maybe-require-package 'nix-ts-mode) - (when (and (fboundp 'treesit-ready-p) (treesit-ready-p 'nix t)) - (add-to-list 'auto-mode-alist '("\\.nix\\'" . nix-ts-mode))) + ;; If the TS mode is installed, then the non-TS mode is not, so + ;; nobody will have added an auto-mode-alist entry + (add-to-list 'auto-mode-alist '("\\.nix\\'" . nix-ts-mode)) (maybe-require-package 'nix-mode)) (with-eval-after-load 'eglot - (add-to-list 'eglot-server-programs '((nix-mode nix-ts-mode) . ("nil")))) + ;; Prefer nixd to nil, and enable in nix-ts-mode too + (add-to-list 'eglot-server-programs + `((nix-mode nix-ts-mode) . ,(eglot-alternatives '("nixd" "nil"))))) (maybe-require-package 'nixpkgs-fmt) +(maybe-require-package 'nixfmt) (provide 'init-nix) ;;; init-nix.el ends here diff --git a/lisp/init-ocaml.el b/lisp/init-ocaml.el index c3bf20b999..35115e95cf 100644 --- a/lisp/init-ocaml.el +++ b/lisp/init-ocaml.el @@ -24,6 +24,11 @@ (define-key tuareg-mode-map (kbd "C-c C-z") 'sanityinc/tuareg-repl-switch) (define-key tuareg-interactive-mode-map (kbd "C-c C-z") 'sanityinc/tuareg-repl-switch-back))) +(when (and (fboundp 'treesit-available-p) (treesit-available-p)) + (require-package 'ocaml-ts-mode) + (with-eval-after-load 'eglot + (add-to-list 'eglot-server-programs '(((ocaml-ts-mode :language-id "ocaml")) "ocamllsp")))) + (when (maybe-require-package 'dune) (maybe-require-package 'dune-format)) diff --git a/lisp/init-zig.el b/lisp/init-zig.el new file mode 100644 index 0000000000..0fa4af72ab --- /dev/null +++ b/lisp/init-zig.el @@ -0,0 +1,15 @@ +;;; init-zig.el --- Support for the Zig language -*- lexical-binding: t -*- +;;; Commentary: +;;; Code: + +(if (and (maybe-require-package 'zig-ts-mode) + (fboundp 'treesit-ready-p) (treesit-ready-p 'zig)) + (progn + (add-to-list 'auto-mode-alist '("\\.\\(zig\\|zon\\)\\'" . zig-ts-mode)) + (with-eval-after-load 'eglot + (add-to-list 'eglot-server-programs '(zig-ts-mode . ("zls"))))) + (require-package 'zig-mode)) + + +(provide 'init-zig) +;;; init-zig.el ends here