From aed5c1c67fe032b46b5b080b8906334378ff017f Mon Sep 17 00:00:00 2001 From: Thomas von Dein Date: Mon, 22 Jun 2026 10:02:50 +0200 Subject: [PATCH] add csv mode (wip), add lsp support to python-mode --- init.el | 2 ++ lisp/init-csv.el | 19 +++++++++++++++++++ lisp/init-daemonde.el | 36 ++++++++++-------------------------- lisp/init-lsp.el | 6 +++++- lisp/init-python.el | 16 ++++++++-------- 5 files changed, 44 insertions(+), 35 deletions(-) create mode 100644 lisp/init-csv.el diff --git a/init.el b/init.el index 4222399..7cbd930 100644 --- a/init.el +++ b/init.el @@ -113,6 +113,7 @@ (require 'init-rust) (require 'init-shellscript) (require 'init-perl) +(require 'init-python) (require 'init-go) (require 'init-c) (require 'init-lua) @@ -159,6 +160,7 @@ ;; (require 'init-audio) nope, I'm just not using it anymore (require 'init-daemonde) (require 'init-matrix) +;; (require 'init-csv) ;; emacs configuration (require 'init-windowmgmt) diff --git a/lisp/init-csv.el b/lisp/init-csv.el new file mode 100644 index 0000000..a281429 --- /dev/null +++ b/lisp/init-csv.el @@ -0,0 +1,19 @@ +(defun tvd/csv-mode-setup () + (csv-align-mode t) + (toggle-truncate-lines 1) + (csv-header-line t)) + +(use-package csv-mode + :mode "\\.csv\\'" + :config + (setq + toggle-truncate-lines 1 + csv-header-line t) + + :hook + (csv-mode . csv-align-mode)) + +(provide 'init-csv) +;;; init-csv.el ends here + +;; FIXME: create my own mode, convert CSV into org-table, edit it and convert back to CSV on save with a hook diff --git a/lisp/init-daemonde.el b/lisp/init-daemonde.el index 729e780..ccff1a5 100644 --- a/lisp/init-daemonde.el +++ b/lisp/init-daemonde.el @@ -1,11 +1,12 @@ -;; maintain daemon.de jekyll website +;; maintain daemon.de hugo website ;; (require 'subr-x) -(setq daemon-de-site "~/dev/web/daemon.de") +(setq daemon-de-site "~/dev/daemon.de") (setq daemon-de-template "--- -layout: post -title: %s +title: \"%s\" +draft: false +date: %s tags: - %s --- @@ -20,30 +21,13 @@ tags: (replace-regexp-in-string "[[:nonascii:]]" "" (replace-regexp-in-string " " "-" (downcase title))) ".md")) -(defun daemon-de-new-blogpost(title category) +(defun daemon-de-new-blogpost(title tag) "Create a new blog posting for daemon.de" - (interactive "sEnter blog post title: \nsEnter a category: ") + (interactive "sEnter blog post title: \nsEnter a tag: ") (find-file - (format "%s/_posts/%s" daemon-de-site (daemon-de-title2slug title))) - (insert (format daemon-de-template title category)) - ) - -(defun --daemon-de-new-blogpost(title category) - "Create a new blog posting for daemon.de" - (interactive "sEnter blog post title: \nsEnter a category: ") - (let ((cwd default-directory) - (path "")) - (cd daemon-de-site) - (find-file - (string-trim-right - (shell-command-to-string - (format "./newblog.sh '%s' '%s'" title category)))) - (cd cwd))) - -(defun daemon-de-publish() - "build and publish jekyll site using git" - (interactive) - (magit-status daemon-de-site)) + (format "%s/content/posts/%s" daemon-de-site (daemon-de-title2slug title))) + (setq timestamp (format-time-string "%Y-%m-%dT%H:%M:%S+0100")) + (insert (format daemon-de-template title timestamp tag))) (provide 'init-daemonde) ;;; init-daemonde.el ends here diff --git a/lisp/init-lsp.el b/lisp/init-lsp.el index bb74a00..359909e 100644 --- a/lisp/init-lsp.el +++ b/lisp/init-lsp.el @@ -3,7 +3,11 @@ :config (lsp-register-custom-settings '(("gopls.completeUnimported" t t) - ("gopls.staticcheck" t t))) + ("gopls.staticcheck" t t) + ("pyls.plugins.pyls_mypy.enabled" t t) + ("pyls.plugins.pyls_mypy.live_mode" nil t) + ("pyls.plugins.pyls_black.enabled" t t) + ("pyls.plugins.pyls_isort.enabled" t t))) ;; disable infantile nonsense (setq lsp-headerline-breadcrumb-enable nil diff --git a/lisp/init-python.el b/lisp/init-python.el index 97ef226..e3b256b 100644 --- a/lisp/init-python.el +++ b/lisp/init-python.el @@ -2,15 +2,15 @@ :mode ("\\.py\\'" . python-mode) :interpreter ("python" . python-mode) :mode "\\.py\\'" - :hook - (function - (lambda() - (local-set-key [delete] 'py-electric-delete) - (setq-default indent-tabs-mode nil) - (setq mode-name "PY") - (outline-minor-mode 0) ;; turn off outline here. FIXME: find out where it's turned on! - ))) + :config + (defun tvd-python-hook() + (local-set-key [delete] 'py-electric-delete) + (setq-default indent-tabs-mode nil) + (setq mode-name "PY") + (outline-minor-mode 0) ;; turn off outline here. FIXME: find out where it's turned on! + (lsp)) + :hook ((python-mode . tvd-python-hook))) (provide 'init-python) ;;; init-python.el ends here