From 4c41781ccb50fe073c93e18e7589d5cf8c579058 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Mon, 20 Mar 2023 21:30:46 -0600 Subject: [PATCH] Allow custom names in ktxt2 settings --- projects/ktxt2/package.json | 17 ++++++++++++++++- projects/ktxt2/src/ktxt2/Main.kiss | 17 +++++++++-------- projects/ktxt2/src/ktxt2/NamesConversion.kiss | 10 ++++++++-- 3 files changed, 33 insertions(+), 11 deletions(-) diff --git a/projects/ktxt2/package.json b/projects/ktxt2/package.json index dd80ad75..285e8ee4 100644 --- a/projects/ktxt2/package.json +++ b/projects/ktxt2/package.json @@ -38,7 +38,22 @@ "title": "ktxt2: Import a file to a new KTxt2 file", "command": "ktxt2.importKTxt2InputFile" } - ] + ], + "configuration": { + "title": "ktxt2", + "properties": { + "ktxt2.nameExceptions": { + "description": "Treat these tokens as names", + "items": { + "type": "string" + }, + "type": [ + "array" + ], + "default": [] + } + } + } }, "engines": { "vscode": "^1.4.0" diff --git a/projects/ktxt2/src/ktxt2/Main.kiss b/projects/ktxt2/src/ktxt2/Main.kiss index cfed8f55..a6c5d180 100644 --- a/projects/ktxt2/src/ktxt2/Main.kiss +++ b/projects/ktxt2/src/ktxt2/Main.kiss @@ -17,11 +17,12 @@ // Add your extension's commands here with (defCommand <...>): (load "Commands.kiss") // Add your extension's configuration here with (defConfiguration <...>): - // (defConfiguration - // :Bool configBool - // (object - // default false) - // :String configString - // (object - // default "")) - ) \ No newline at end of file + (defConfiguration + :Array nameExceptions + (object + description "Treat these tokens as names" + default []))) + +(function updateNameExceptions [] + (doFor name nameExceptions + (dictSet bad_nlp.Names.yesNames (name.toLowerCase) true))) diff --git a/projects/ktxt2/src/ktxt2/NamesConversion.kiss b/projects/ktxt2/src/ktxt2/NamesConversion.kiss index fcf82f72..b1a386a7 100644 --- a/projects/ktxt2/src/ktxt2/NamesConversion.kiss +++ b/projects/ktxt2/src/ktxt2/NamesConversion.kiss @@ -4,6 +4,12 @@ :(String,Array)->Bool canConvertNames :Array->String convertNames] [ - &mut :String->Bool canConvert ->block ?(whenLet [names (Names.findNames block)] (canConvertNames block names)) - &mut :String->String convert ->block (let [names (Names.findNames block)] (convertNames names)) + &mut :String->Bool canConvert ->block { + (Main.updateNameExceptions) + ?(whenLet [names (Names.findNames block)] (canConvertNames block names)) + } + &mut :String->String convert ->block { + (Main.updateNameExceptions) + (let [names (Names.findNames block)] (convertNames names)) + } ]) \ No newline at end of file