Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/_locales/de/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
"quicktext.controlledViaManagedStorage.label": {
"message": "Über verwalteten Speicher gesteuert"
},
"quicktext.caseinsensitive.label": {
"message": "Ignoriere groß/kleinschreibung bei Schlüsselwortern"
},
"quicktext.date.label": {
"message": "Datum ($P1$)",
"placeholders": {
Expand Down
3 changes: 3 additions & 0 deletions src/_locales/en-US/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
"quicktext.controlledViaManagedStorage.label": {
"message": "Controlled via managed storage"
},
"quicktext.caseinsensitive.label": {
"message": "Keywords are Case-insensitive"
},
"quicktext.date.label": {
"message": "Date ($P1$)",
"placeholders": {
Expand Down
3 changes: 3 additions & 0 deletions src/dialogs/manager/manager.html
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@
</select>
<span id="lbl-keyword-setting" data-i18n-content="quicktext.keywordKeySetting.label"></span>
</div>
<div>
<label><input type="checkbox" id="chk-keyword-ci"> <span id="lbl-chk-case-insensitive" data-i18n-content="quicktext.caseInsensitive.label"></span></label>
</div>
</div>
</fieldset>
</div>
Expand Down
8 changes: 7 additions & 1 deletion src/dialogs/manager/manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ async function _refreshVfsProviders() {
async function loadAll() {
const prefNames = [
"popup", "menuCollapse", "shortcutModifier", "shortcutTypeAdv",
"keywordKey", "counter", "defaultImport",
"keywordKey", "keywordCaseinsensitive", "counter", "defaultImport",
];
for (const pref of prefNames) {
const { value, isManaged } = await storage.getPrefWithManagedInfo(pref);
Expand Down Expand Up @@ -280,6 +280,7 @@ async function saveAll() {
await storage.setPref("shortcutModifier", state.prefs.shortcutModifier);
await storage.setPref("shortcutTypeAdv", state.prefs.shortcutTypeAdv);
await storage.setPref("keywordKey", state.prefs.keywordKey);
await storage.setPref("keywordCaseinsensitive", state.prefs.keywordCaseinsensitive);
await storage.setPref("defaultImport", state.prefs.defaultImport);
// The storage list (including enabled flags, type, name and
// ordering) is part of the regular Save flow. Storage-list edits
Expand Down Expand Up @@ -392,6 +393,11 @@ function renderGeneral() {
applyManaged(selKeyword, managed("keywordKey"));
selKeyword.addEventListener("change", () => { state.prefs.keywordKey = selKeyword.value; markChanged(); });

const chkKeywordCI = document.getElementById("chk-keyword-ci");
chkKeywordCI.checked = state.prefs.keywordCaseinsensitive;
applyManaged(chkKeywordCI, managed("keywordCaseinsensitive"));
chkKeywordCI.addEventListener("change", () => { state.prefs.keywordCaseinsensitive = chkKeywordCI.checked; markChanged(); });

document.getElementById("btn-reset-counter").addEventListener("click", () => {
state.prefs.counter = 0;
storage.setPref("counter", 0);
Expand Down
4 changes: 4 additions & 0 deletions src/modules/quicktext.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,7 @@ export async function processTag({ tabId, tag, variables }) {
// without further logic to return a Promise.
export async function getKeywordsAndShortcuts() {
let bundles = await storage.getActiveStorageEntries();
let keywordCaseinsensitive = await storage.getPref("keywordCaseinsensitive");
let keywords = {};
let shortcuts = {};

Expand All @@ -293,6 +294,9 @@ export async function getKeywordsAndShortcuts() {

let keyword = text.keyword;
if (keyword != "" && typeof keywords[keyword] == "undefined")
if(keywordCaseinsensitive) {
keyword = keyword.toLowerCase();
}
keywords[keyword] = [bundle.storageUuid, i, j];
}
}
Expand Down
2 changes: 2 additions & 0 deletions src/modules/storage.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,7 @@ const defaultPrefs = {
"toolbar": true,
"popup": true,
"keywordKey": "Tab",
"keywordCaseinsensitive": false,
"shortcutModifier": "alt",
"shortcutTypeAdv": false,
"collapseState": "",
Expand All @@ -313,6 +314,7 @@ const managedPrefs = [
"menuCollapse",
"popup",
"keywordKey",
"keywordCaseinsensitive",
"shortcutModifier",
"shortcutTypeAdv",
];
Expand Down
6 changes: 5 additions & 1 deletion src/scripts/compose.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const alternatives = {
"Enter": ["NumpadEnter"]
}

let keywords, keywordKey, shortcutTypeAdv, shortcutModifier, shortcuts;
let keywords, keywordKey, keywordCaseinsensitive, shortcutTypeAdv, shortcutModifier, shortcuts;
let advShortcutModifierIsDown = false;
let advShortcutString = "";
let popoverShown = false;
Expand Down Expand Up @@ -147,6 +147,9 @@ function keywordListener(e) {
let range = initialSelectionRange.cloneRange();
range.setStart(range.startContainer, 0);
let lastWord = range.toString().split(" ").pop();
if (keywordCaseinsensitive) {
lastWord = lastWord.toLocaleLowerCase();
}

if (!lastWord || !keywords.hasOwnProperty(lastWord)) {
return;
Expand Down Expand Up @@ -213,6 +216,7 @@ async function getLatestPrefs() {
keywordKey = await storage.getPref("keywordKey");
shortcutTypeAdv = await storage.getPref("shortcutTypeAdv");
shortcutModifier = await storage.getPref("shortcutModifier");
keywordCaseinsensitive = await storage.getPref("keywordCaseinsensitive");

let rv = await messenger.runtime.sendMessage({ command: "getKeywordsAndShortcuts" });
keywords = rv.keywords;
Expand Down