feat: new 'SEL' Command for Quick Tools#2414
Conversation
Greptile SummaryThis PR adds a new "SEL" quick-tool button that triggers select-all on the active editor by dispatching the existing
Confidence Score: 3/5The quick-tool feature itself is safe, but the unrelated removal of the TLS protocol blacklist in package.json should be resolved before merging. The two-line feature change (items.js + en-us.json) is correct and well-integrated. However, the PR also removes the explicit SSLv3/TLSv1 block from the Android HTTP plugin config — a security-sensitive change with no explanation — and bundles several hundred lines of unrelated lock-file modifications. These unrelated changes make the PR harder to safely merge as-is. package.json (TLS blacklist removal) and package-lock.json (unrelated dependency churn)
|
| Filename | Overview |
|---|---|
| src/components/quickTools/items.js | Adds a new "select-all" quick-tool item that dispatches the existing selectall command via the command registry — consistent with the existing pattern and correctly wired end-to-end. |
| src/lang/en-us.json | Adds the quicktools:select-all i18n string for the new button's tooltip — correct key format, matches what description() in items.js looks up. |
| package.json | Removes the ANDROIDBLACKLISTSECURESOCKETPROTOCOLS config for cordova-plugin-advanced-http, silently dropping an explicit SSLv3/TLSv1 block unrelated to this feature — needs justification. |
| package-lock.json | Large unrelated lock-file churn: upgrades @codemirror/view to 6.43.4, re-scopes several @emnapi/* packages, and toggles peer flags on dozens of packages — none of this is related to the SEL feature. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[User taps SEL quick-tool button] --> B[RowItem renders button\ndata-action=command\ndata-value=selectall]
B --> C[quickTools handler\nactions command, selectall]
C --> D[commandRegistry\nexecuteCommand selectall]
D --> E{Command found?}
E -- Yes --> F[selectall command\nrequiresView: true]
F --> G[resolveView editor]
G --> H[codemirror selectAll view]
H --> I[Entire file content selected]
E -- No --> J[return false, no-op]
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
A[User taps SEL quick-tool button] --> B[RowItem renders button\ndata-action=command\ndata-value=selectall]
B --> C[quickTools handler\nactions command, selectall]
C --> D[commandRegistry\nexecuteCommand selectall]
D --> E{Command found?}
E -- Yes --> F[selectall command\nrequiresView: true]
F --> G[resolveView editor]
G --> H[codemirror selectAll view]
H --> I[Entire file content selected]
E -- No --> J[return false, no-op]
Reviews (1): Last reviewed commit: "(feat) New 'SEL' Command for Quick Tools" | Re-trigger Greptile
| "cordova-plugin-iap": {}, | ||
| "com.foxdebug.acode.rk.customtabs": {}, | ||
| "cordova-plugin-system": {}, | ||
| "cordova-plugin-advanced-http": { | ||
| "ANDROIDBLACKLISTSECURESOCKETPROTOCOLS": "SSLv3,TLSv1" | ||
| } | ||
| "cordova-plugin-advanced-http": {} | ||
| }, |
There was a problem hiding this comment.
Unrelated TLS blacklist removal
Removing ANDROIDBLACKLISTSECURESOCKETPROTOCOLS: "SSLv3,TLSv1" is entirely unrelated to the "SEL" quick-tool feature and silently opts the Android HTTP client back into whatever the cordova-plugin-advanced-http default behaviour is. On devices and Android versions where the underlying OkHttp/HttpClient stack still supports SSLv3 or TLSv1, this removal could allow the app to negotiate deprecated, cryptographically-broken protocols (POODLE for SSLv3; BEAST/POODLE for TLSv1). This change needs its own PR with a clear rationale for why the explicit protocol block is no longer needed.
| "@codemirror/search": "^6.7.1", | ||
| "@codemirror/state": "^6.6.0", | ||
| "@codemirror/theme-one-dark": "^6.1.3", | ||
| "@codemirror/view": "^6.43.1", | ||
| "@codemirror/view": "^6.43.4", |
There was a problem hiding this comment.
Unrelated lock-file churn included in PR
The package-lock.json diff contains hundreds of lines of changes — upgrading @codemirror/view from 6.43.1 to 6.43.4, re-scoping @emnapi/* packages under @rspack/binding-wasm32-wasi, and toggling peer flags on dozens of unrelated packages. None of this is needed for the "SEL" quick-tool feature, and bundling it here makes the PR difficult to review and audit. These changes should be landed separately or explained in the PR description if they are intentional.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
173a24e to
03ef9b2
Compare
Add a new Quick Tools Command: "Sel" which allows one to select everything they have in a file.
Closes: #2334