diff options
-rw-r--r-- | elisp/cmk.el | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/elisp/cmk.el b/elisp/cmk.el index 8d754cd..ad97272 100644 --- a/elisp/cmk.el +++ b/elisp/cmk.el @@ -113,7 +113,7 @@ Default is \"%Y-%m-%d %H:%M\"." '("Filter" "Columns" "Stats" "Limit" "ColumnHeaders" "OutputFormat")) (define-derived-mode cmk-livestatus-mode prog-mode "livestatus" - "Major mode for viewing journalctl output." + "Major mode for editing livestatus queries." (add-function :before-until (local 'eldoc-documentation-function) #'cmk-timestamp-eldoc-documentation) ;; (setq-local company-backends (cons 'company-cmk-lq company-backends)) @@ -126,6 +126,15 @@ Default is \"%Y-%m-%d %H:%M\"." (,(rx bol (or "And" "Or" "Negate") ":" whitespace) . font-lock-keyword-face) (,(rx whitespace (or "~" "=" "=~" "~~" "<" ">" "<=" ">=") whitespace) . font-lock-keyword-face))))) +(defun cmk-livestatus-get-csv-result (query) + "Send QUERY to a new livestatus process. +Display result buffer in csv mode with aligned entries." + (let ((cmk (cmk-livestatus-query query))) + (switch-to-buffer (process-buffer cmk)) + (csv-set-separator ?\;) + (csv-align-mode) + (setq-local cmk-livestatus-query query))) + (defun cmk-custom-livestatus-query () "Open buffer to write a livestatus query." (interactive) @@ -139,11 +148,7 @@ Default is \"%Y-%m-%d %H:%M\"." (interactive) (let ((new-query (-> (buffer-string) (string-trim) (concat "\n\n")))) (kill-buffer) - (let ((cmk (cmk-livestatus-query new-query))) - (switch-to-buffer (process-buffer cmk)) - (csv-set-separator ?\;) - (csv-align-mode) - (setq-local cmk-livestatus-query new-query)))))) + (cmk-livestatus-get-csv-result new-query))))) (switch-to-buffer edit-buffer))) (defun company-cmk-lq (command &optional arg &rest _ignored) |