From bab6c5251ba6b3e0cef72bffa49f0953b634015b Mon Sep 17 00:00:00 2001 From: Jonathan Neidel Date: Fri, 20 Feb 2026 14:43:48 +0100 Subject: [PATCH 1/2] Allow removal of tags not in controlled vocabulary with --force-cv --- filetags/__init__.py | 4 ++-- tests/unit_tests.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/filetags/__init__.py b/filetags/__init__.py index ceec5b9..e705d28 100755 --- a/filetags/__init__.py +++ b/filetags/__init__.py @@ -1652,9 +1652,9 @@ def get_invalid_tags_for_vocabulary(tags, vocabulary): invalid_tags = [] for raw_tag in tags: - tag = raw_tag[1:] if raw_tag.startswith('-') else raw_tag - if raw_tag.startswith('-') and tag in normalized_vocabulary: + if raw_tag.startswith('-'): # always allow removals continue + tag = raw_tag if tag not in normalized_vocabulary: invalid_tags.append(raw_tag) return list(dict.fromkeys(invalid_tags)) diff --git a/tests/unit_tests.py b/tests/unit_tests.py index 53bf140..e4a0c9c 100755 --- a/tests/unit_tests.py +++ b/tests/unit_tests.py @@ -211,7 +211,7 @@ def test_get_invalid_tags_for_vocabulary(self): vocabulary = ['foo', 'bar', 'baz'] self.assertEqual(filetags.get_invalid_tags_for_vocabulary(['foo', 'bar'], vocabulary), []) self.assertEqual(filetags.get_invalid_tags_for_vocabulary(['foo', 'qux'], vocabulary), ['qux']) - self.assertEqual(filetags.get_invalid_tags_for_vocabulary(['-foo', '-qux'], vocabulary), ['-qux']) + self.assertEqual(filetags.get_invalid_tags_for_vocabulary(['-foo', '-qux'], vocabulary), []) self.assertEqual(filetags.get_invalid_tags_for_vocabulary(['aa', 'aa', 'bb', 'aa'], ['bb']), ['aa']) def test_build_similar_to_invalid_tags_message(self): From 69fb44cc0388bc54a4c2fc993b926487aef946f2 Mon Sep 17 00:00:00 2001 From: Jonathan Neidel Date: Fri, 20 Feb 2026 14:27:41 +0100 Subject: [PATCH 2/2] Update dired usage example --- Integration.org | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Integration.org b/Integration.org index 003080b..00b69fd 100644 --- a/Integration.org +++ b/Integration.org @@ -439,7 +439,7 @@ An alternative implementation using the kitty terminal: "Run \"filetags\" on current or marked files" (interactive) (dired-do-shell-command - "kitty -o remember_window_size=no -o initial_window_width=60c -o initial_window_height=15c --position 535x300 -o window_padding_width='0 20 0 20' --title floating -- filetags -q --interactive *" + "kitty -o remember_window_size=no -o initial_window_width=60c -o initial_window_height=15c --position 535x300 -o window_padding_width='0 20 0 20' --title floating -- filetags -q --force-cv --interactive *" nil (dired-get-marked-files)) (revert-buffer nil t t))