emacs/init.el
2025-06-06 15:44:19 +02:00

137 lines
4.1 KiB
EmacsLisp

(add-to-list 'load-path "~/.emacs.d/lisp/")
(normal-erase-is-backspace-mode 0)
(windmove-default-keybindings)
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(custom-safe-themes
'("77f1e155387d355fbbb3b382a28da41cc709b2a1cc71e7ede03ee5c1859468d2" default))
'(lsp-perl-perl-inc ["./lib/"])
'(package-selected-packages
'(exec-path-from-shell company flycheck vterm minimap lsp-treemacs treemacs-magit treemacs lsp-mode magit whitespace-cleanup-mode request markdown-mode elmine kuronami-theme yaml-mode)))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(minimap-font-face ((t (:height 5 :family "DejaVu Sans Mono")))))
(load-theme 'kuronami)
;; Disable the splash screen (to enable it agin, replace the t with 0)
(setq inhibit-splash-screen t)
;; Enable transient mark mode
(transient-mark-mode 1)
;;;;Org mode configuration
;; Enable Org mode
(require 'org)
;; Make Org mode work with files ending in .org
(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
(setq org-todo-keywords
'((sequence "TODO" "IN-PROGRESS" "WAITING" "DONE")))
(require 'orgmine)
(add-hook 'org-mode-hook
(lambda () (if (assoc "om_project" org-keyword-properties)
(orgmine-mode))))
(setq org-link-abbrev-alist
'(("poo" . "https://progress.opensuse.org/")
;;...
))
(setq request-curl-options '("-k"))
(setq orgmine-servers
'(("poo" ; server name for this entry
(host . "https://progress.opensuse.org")
(api-key . "9fe3c1484c9bf956fce04ec67f08917b9ac2206d")
(issue-title-format . "[[redmine:issues/%{id}][#%{id}]] %{subject}")
(journal-title-format . "[[redmine:issues/%{id}#note-%{count}][V#%{id}-%{count}]] %{created_on} %{author}")
(version-title-format . "[[redmine:versions/%{id}][V#%{id}]] %{name}")
(tracker-title-format . "%{name}")
(project-title-format . "[[redmine:projects/%{identifier}][%{identifier}]] %{name}")
(user-name-format . "%{firstname} %{lastname}")
(default-todo-keyword . "NEW"))))
(require 'perltidy)
(fset 'perl-mode 'cperl-mode)
(add-hook 'fperl-mode-hook 'whitespace-cleanup-mode)
(setq cperl-invalid-face nil)
(setq cperl-indent-level 4)
(use-package exec-path-from-shell
:ensure t
:config
(exec-path-from-shell-initialize)
(exec-path-from-shell-copy-env "PERL5LIB"))
(use-package company
:ensure t
:config
(add-to-list 'company-backends 'company-capf)
(global-company-mode))
(use-package lsp-mode
:ensure t
:init
(setq lsp-keymap-prefix "C-c l")
:config
(add-hook 'c-mode-hook #'lsp)
(add-hook 'c++-mode-hook #'lsp)
(add-hook 'cperl-mode-hook #'lsp)
(setq lsp-clangd-binary-path "/usr/bin/clangd")
(setq lsp-client-clangd-args '("-j=4" "-background-index" "-log=error"))
(setq lsp-keymap-prefix "C-c C-l"))
;;;(add-to-list 'lsp-perl-perl-inc ("/Users/MMOESE/work/os-autoinst-distri-opensuse/lib" "/Users/MMOESE/work/os-autoinst-distri-opensuse/os-autoinst"))
(use-package treemacs
:ensure t)
(use-package treemacs-magit
:ensure t)
(use-package lsp-treemacs
:ensure t)
(use-package minimap
:ensure t
:config (setq minimap-window-location 'right))
(use-package flycheck
:ensure t
)
(lsp-treemacs-sync-mode 1)
(setq lsp-modeline-diagnostics-enable t)
(add-to-list 'display-buffer-alist
'("\*vterm\*"
(display-buffer-in-side-window)
(window-height . 0.25)
(side . bottom)
(slot . 0)))
(add-to-list 'display-buffer-alist
'("\*compilation\*"
(display-buffer-in-side-window)
(window-height . 0.25)
(side . bottom)
(slot . 0)))
(add-hook 'after-init-hook #'global-flycheck-mode)
;;;(add-hook 'after-init-hook #'treemacs)