aboutsummaryrefslogtreecommitdiffstats
path: root/elisp/cmk.el
diff options
context:
space:
mode:
Diffstat (limited to 'elisp/cmk.el')
-rw-r--r--elisp/cmk.el17
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)