Don't remove tags for the tag keyword (#2386)

This commit is contained in:
Veronica Berglyd Olsen
2025-06-06 19:16:59 +02:00
parent bf1067a346
commit 53355dbcc6
4 changed files with 17 additions and 12 deletions
+4
View File
@@ -184,6 +184,10 @@ class nwKeyWords:
POV_KEY, FOCUS_KEY, CHAR_KEY, PLOT_KEY, TIME_KEY, WORLD_KEY,
OBJECT_KEY, ENTITY_KEY, CUSTOM_KEY,
]
CAN_LOOKUP: Final[list[str]] = [
POV_KEY, FOCUS_KEY, CHAR_KEY, PLOT_KEY, TIME_KEY, WORLD_KEY,
OBJECT_KEY, ENTITY_KEY, CUSTOM_KEY, STORY_KEY, MENTION_KEY,
]
# Set of Valid Keys
VALID_KEYS: Final[set[str]] = set(ALL_KEYS)
+6 -4
View File
@@ -757,10 +757,12 @@ class Index:
"""Return all tags used by a specific document."""
return self._itemIndex.allItemTags(tHandle) if tHandle else []
def getClassTags(self, itemClass: nwItemClass | None) -> list[str]:
"""Return all tags based on itemClass."""
name = None if itemClass is None else itemClass.name
return self._tagsIndex.filterTagNames(name)
def getKeyWordTags(self, keyWord: str) -> list[str]:
"""Return all tags usable for a specific keyword."""
if keyWord in nwKeyWords.CAN_LOOKUP:
itemClass = nwKeyWords.KEY_CLASS.get(keyWord)
return self._tagsIndex.filterTagNames(itemClass.name if itemClass else None)
return []
def getTagsData(
self, activeOnly: bool = True
+1 -3
View File
@@ -2116,9 +2116,7 @@ class CommandCompleter(QMenu):
length = len(lookup)
suffix = ""
options = sorted(filter(
lambda x: lookup in x.lower(), SHARED.project.index.getClassTags(
nwKeyWords.KEY_CLASS.get(kw.strip())
)
lambda x: lookup in x.lower(), SHARED.project.index.getKeyWordTags(kw.strip())
))[:15]
if not options:
+6 -5
View File
@@ -789,11 +789,12 @@ def testCoreIndex_ExtractData(nwGUI, fncPath, mockRnd):
assert index.getDocumentTags(cHandle) == ["jane"]
assert index.getDocumentTags(None) == []
# getClassTags
# ============
assert index.getClassTags(None) == ["Jane", "John"]
assert index.getClassTags(nwItemClass.CHARACTER) == ["Jane", "John"]
assert index.getClassTags(nwItemClass.PLOT) == []
# getKeyWordTags
# ==============
assert index.getKeyWordTags("@mention") == ["Jane", "John"]
assert index.getKeyWordTags("@char") == ["Jane", "John"]
assert index.getKeyWordTags("@plot") == []
assert index.getKeyWordTags("@tag") == []
# getTagsData
# ===========