From 2b4a8bb5cbf3bc411d04df9f2305fa382d4f92b3 Mon Sep 17 00:00:00 2001 From: Andrew Hyatt Date: Sat, 20 Jul 2024 20:32:31 -0400 Subject: [PATCH] Fix issue where tags fields values first character was read-only --- Eldev | 1 + ekg-test.el | 28 ++++++++++++++++++++++++++++ ekg.el | 2 +- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/Eldev b/Eldev index f84034d..8a7dc8f 100644 --- a/Eldev +++ b/Eldev @@ -2,3 +2,4 @@ (eldev-use-package-archive 'gnu-elpa) (eldev-use-plugin 'maintainer) +(eldev-add-extra-dependencies 'test '(:package markdown-mode :archive melpa)) diff --git a/ekg-test.el b/ekg-test.el index 3477824..f6e9e38 100644 --- a/ekg-test.el +++ b/ekg-test.el @@ -25,6 +25,7 @@ (require 'ert) (require 'ert-x) (require 'org) +(require 'markdown-mode) (require 'ekg-test-utils) (ekg-deftest ekg-test-note-lifecycle () @@ -316,6 +317,33 @@ (should (= (overlay-end o) (+ 1 (length "Tags: test\n")))) (should (= (point) (overlay-end o)))))) +(ekg-deftest ekg-test-metadata-read-only () + (dolist (mode '(org-mode markdown-mode text-mode)) + (let ((ekg-capture-default-mode mode)) + (cl-loop for i from 1 to 10 + do + (ekg-capture) + ;; TODO(ahyatt) Find out why this is necessary to reproduce bad + ;; behavior. + (funcall mode) + (goto-char i) + (cond + ((= i 1) + (ert-info + ((format "%s: Inserting text at position %d in beginning of the line should be allowed." + mode i)) + (insert "foo"))) + ((> i (length "Tags: ")) + (ert-info + ((format "%s: Inserting text at position %d in the field value should be allowed." + mode i)) + (insert "foo"))) + (t (ert-info + ((format "%s: Inserting text at position %d in the tag field name should not be allowed." + mode i)) + (should-error (insert "foo"))))) + (kill-buffer))))) + (ekg-deftest ekg-test-draft () (ekg-capture :tags '("test")) (insert "foo") diff --git a/ekg.el b/ekg.el index b2b288e..210f537 100644 --- a/ekg.el +++ b/ekg.el @@ -1237,7 +1237,7 @@ This will be displayed at the top of the note buffer." (format "%s%s%s" (concat (propertize (concat property ":") 'face 'bold 'read-only read-only) - (propertize " " 'read-only read-only 'rear-nonsticky t)) + (propertize " " 'read-only nil 'rear-nonsticky t)) value (propertize "\n" 'read-only read-only 'rear-nonsticky t))))