Skip to content
Merged
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: 2 additions & 1 deletion src/lang/ar-ye.json
Original file line number Diff line number Diff line change
Expand Up @@ -503,5 +503,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/be-by.json
Original file line number Diff line number Diff line change
Expand Up @@ -505,5 +505,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/bn-bd.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/cs-cz.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/de-de.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/en-us.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/es-sv.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/fr-fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/he-il.json
Original file line number Diff line number Diff line change
Expand Up @@ -505,5 +505,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/hi-in.json
Original file line number Diff line number Diff line change
Expand Up @@ -505,5 +505,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/hu-hu.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Hozzáadás a kezdőképernyőhöz",
"pin shortcuts not supported": "Ez az eszköz nem támogatja a kezdőképernyő-parancsikonokat.",
"save file before home shortcut": "A kezdőképernyőhöz való hozzáadás előtt mentse el a fájlt.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/id-id.json
Original file line number Diff line number Diff line change
Expand Up @@ -505,5 +505,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/ir-fa.json
Original file line number Diff line number Diff line change
Expand Up @@ -505,5 +505,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/it-it.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/ja-jp.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/ko-kr.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/ml-in.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/mm-unicode.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/mm-zawgyi.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/pl-pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/pt-br.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/pu-in.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/ru-ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/tl-ph.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/tr-tr.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/uk-ua.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/uz-uz.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/vi-vn.json
Original file line number Diff line number Diff line change
Expand Up @@ -505,5 +505,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/zh-cn.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/zh-hant.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
3 changes: 2 additions & 1 deletion src/lang/zh-tw.json
Original file line number Diff line number Diff line change
Expand Up @@ -504,5 +504,6 @@
"add to home screen": "Add to home screen",
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers."
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
"shift click selection": "Shift + tap/click selection"
}
41 changes: 40 additions & 1 deletion src/lib/editorManager.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
import sidebarApps from "sidebarApps";
import { indentUnit } from "@codemirror/language";
import { search } from "@codemirror/search";
import { Compartment, EditorState, Prec, StateEffect } from "@codemirror/state";
import {
Compartment,
EditorSelection,
EditorState,
Prec,
StateEffect,
} from "@codemirror/state";
import { oneDark } from "@codemirror/theme-one-dark";
import {
EditorView,
Expand Down Expand Up @@ -172,6 +178,37 @@ async function EditorManager($header, $body) {
},
);

let shiftClickSelectionExtension;
{
const pointerIdMap = new Map();
shiftClickSelectionExtension = EditorView.domEventHandlers({
pointerup(event, view) {
if (!appSettings.value.shiftClickSelection) return;
if (!(event.isTrusted && event.isPrimary)) return;
if (!event.shiftKey && quickTools.$footer.dataset.shift == null) return;
const { pointerId } = event;
const tid = setTimeout(() => pointerIdMap.delete(pointerId), 1001);
pointerIdMap.set(pointerId, [view.state.selection.main.anchor, tid]);
},
click(event, view) {
const { pointerId } = event;
if (!pointerIdMap.has(pointerId)) return false;
const [anchor, tid] = pointerIdMap.get(pointerId);
clearTimeout(tid);
pointerIdMap.delete(pointerId);
view.dispatch({
selection: EditorSelection.range(
anchor,
view.state.selection.main.anchor,
),
userEvent: "select.extend",
});
event.preventDefault();
return true;
},
});
}

const touchSelectionUpdateExtension = EditorView.updateListener.of(
(update) => {
if (!touchSelectionController) return;
Expand Down Expand Up @@ -725,6 +762,7 @@ async function EditorManager($header, $body) {
fixedHeightTheme,
scrollPastEnd(),
pointerCursorVisibilityExtension,
shiftClickSelectionExtension,
touchSelectionUpdateExtension,
search(),
// Ensure read-only can be toggled later via compartment
Expand Down Expand Up @@ -1088,6 +1126,7 @@ async function EditorManager($header, $body) {
fixedHeightTheme,
scrollPastEnd(),
pointerCursorVisibilityExtension,
shiftClickSelectionExtension,
touchSelectionUpdateExtension,
search(),
// Keep dynamic compartments across state swaps
Expand Down
1 change: 1 addition & 0 deletions src/lib/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@ class Settings {
servers: {},
},
developerMode: false,
shiftClickSelection: false,
};
this.value = structuredClone(this.#defaultSettings);
}
Expand Down
5 changes: 5 additions & 0 deletions src/settings/editorSettings.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ export default function editorSettings() {
match: constants.FONT_SIZE,
},
},
{
key: "shiftClickSelection",
text: strings["shift click selection"],
checkbox: values.shiftClickSelection,
},
{
key: "softTab",
text: strings["soft tab"],
Expand Down