diff --git a/.emacs.d/gost-r-7-0-5-2008-numeric.csl b/.emacs.d/gost-r-7-0-5-2008-numeric.csl
new file mode 100644
index 0000000..9b18065
--- /dev/null
+++ b/.emacs.d/gost-r-7-0-5-2008-numeric.csl
@@ -0,0 +1,224 @@
+
+
diff --git a/.emacs.d/init.el b/.emacs.d/init.el
index 85bfbd4..8bab583 100644
--- a/.emacs.d/init.el
+++ b/.emacs.d/init.el
@@ -583,6 +583,26 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
(add-hook 'visual-fill-column-mode-hook
(lambda () (setq visual-fill-column-center-text t))))
+(use-package accent
+ :straight t
+ :init
+ (general-define-key
+ :states '(normal)
+ "gs" #'accent-menu)
+ (general-define-key
+ :states '(normal insert)
+ "M-n" #'accent-menu)
+ :commands (accent-menu)
+ :config
+ (general-define-key
+ :keymaps 'popup-menu-keymap
+ "C-j" #'popup-next
+ "C-k" #'popup-previous
+ "M-j" #'popup-next
+ "M-k" #'popup-previous)
+ (setq accent-custom '((a (ā))
+ (A (Ā)))))
+
(use-package projectile
:straight t
:config
@@ -1287,6 +1307,34 @@ influence of C1 on the result."
"l" 'lsp-execute-code-action
"e" 'list-flycheck-errors)
+(defun my/lsp--progress-status ()
+ "Returns the status of the progress for the current workspaces."
+ (-let ((progress-status
+ (s-join
+ "|"
+ (-keep
+ (lambda (workspace)
+ (let ((tokens (lsp--workspace-work-done-tokens workspace)))
+ (unless (ht-empty? tokens)
+ (mapconcat
+ (-lambda ((&WorkDoneProgressBegin :message? :title :percentage?))
+ (concat (if percentage?
+ (if (numberp percentage?)
+ (format "%.0f%%%% " percentage?)
+ (format "%s%%%% " percentage?))
+ "")
+ (let ((msg (url-unhex-string (or message\? title))))
+ (if (string-match-p "\\`file:///" msg)
+ (file-name-nondirectory msg)))))
+ (ht-values tokens)
+ "|"))))
+ (lsp-workspaces)))))
+ (unless (s-blank? progress-status)
+ (concat lsp-progress-prefix progress-status))))
+
+(with-eval-after-load 'lsp-mode
+ (advice-add 'lsp--progress-status :override #'my/lsp--progress-status))
+
(use-package flycheck
:straight t
:config
@@ -2150,16 +2198,16 @@ Returns ( . ) or nil."
(setq plantuml-default-exec-mode 'executable)
(setq plantuml-indent-level 2)
(setq my/plantuml-indent-regexp-return "^\s*return\s+.+$")
- (add-to-list
- 'plantuml-indent-regexp-end
- my/plantuml-indent-regexp-return)
+ (;; (add-to-list
+ ;; 'plantuml-indent-regexp-end
+ ;; my/plantuml-indent-regexp-return)
+ )
(add-to-list 'auto-mode-alist '("\\.plantuml\\'" . plantuml-mode))
(add-to-list 'auto-mode-alist '("\\.uml\\'" . plantuml-mode))
- (add-hook 'plantuml-mode-hook #'smartparens-mode))
-
-(general-nmap
- :keymaps 'plantuml-mode-map
- "RET" 'plantuml-preview)
+ (add-hook 'plantuml-mode-hook #'smartparens-mode)
+ (general-nmap
+ :keymaps 'plantuml-mode-map
+ "RET" 'plantuml-preview))
(use-package subed
:straight (:host github :repo "rndusr/subed" :files ("subed/*.el")
@@ -2672,6 +2720,15 @@ Returns ( . ) or nil."
(require 'evil-org-agenda)
(evil-org-agenda-set-keys))
+(defun my/export-rel-url (path desc format)
+ (cl-case format
+ (html (format "%s" path (or desc path)))
+ (latex (format "\\href{%s}{%s}" path (or desc path)))
+ (otherwise path)))
+
+(with-eval-after-load 'org
+ (org-link-set-parameters "rel" :follow #'browse-url :export #'my/export-rel-url))
+
(use-package jupyter
:straight t
:after (org)
@@ -3429,7 +3486,7 @@ KEYS is a list of cons cells like (