Add visual line break marker toggle#2133
Conversation
Greptile SummaryThis PR adds a visual line-break marker feature (
Confidence Score: 3/5Not safe to merge as-is — a developer-specific local file must be removed before this lands. The
Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[User toggles showLineBreakMarker\nor textWrap in Settings] --> B[appSettings fires\nupdate:showLineBreakMarker\nor update:textWrap]
B --> C[applyOptions called\nwith matching key]
C --> D{showLineBreakMarker\nAND textWrap?}
D -- Yes --> E[lineBreakMarkerCompartment\nreconfigured with\nlineBreakMarker plugin]
D -- No --> F[lineBreakMarkerCompartment\nreconfigured with empty array]
E --> G[ViewPlugin renders ¬\nat each non-final line.to\nwithin visible ranges]
F --> H[No markers rendered]
|
| ## This file must *NOT* be checked into Version Control Systems, | ||
| # as it contains information specific to your local configuration. | ||
| # | ||
| # Location of the SDK. This is only used by Gradle. | ||
| # For customization when using a Version Control System, please read the | ||
| # header note. | ||
| #Mon May 25 14:58:09 IST 2026 | ||
| sdk.dir=C\:\\Users\\jainy\\AppData\\Local\\Android\\Sdk |
There was a problem hiding this comment.
Developer-specific file committed to version control
This file contains a machine-specific Windows SDK path (sdk.dir=C:\Users\jainy\...) and the file header itself says it "must NOT be checked into Version Control Systems." Even though /local.properties was correctly added to .gitignore in this PR, the file is still being committed. Any developer who checks out this branch will have their own local.properties overwritten with a path that doesn't exist on their machine, breaking their Android build setup.
| getDecorations(view: EditorView): DecorationSet { | ||
| let widgets: any[] = []; |
There was a problem hiding this comment.
widgets is typed as any[] but the array only ever holds Range<Decoration> values. Using the concrete type improves safety and allows the TypeScript compiler to catch ordering or invalid-range mistakes before runtime.
| getDecorations(view: EditorView): DecorationSet { | |
| let widgets: any[] = []; | |
| getDecorations(view: EditorView): DecorationSet { | |
| let widgets: import("@codemirror/state").Range<Decoration>[] = []; |
This pull request introduces a new feature that allows users to display visual markers for line breaks in the editor when text wrapping is enabled. It also includes updates to the development container configuration and Gradle build toolchain settings. The most significant changes are grouped below:
Editor Feature: Line Break Marker
lineBreakMarker) insrc/cm/lineBreakMarker.tsthat visually marks line breaks with a "¬" character.src/lib/editorManager.js), including compartment management, settings application, and event handling for toggling the marker. [1] [2] [3] [4]showLineBreakMarkerto the default editor settings and the editor settings UI, allowing users to enable or disable the feature. [1] [2]Development Environment and Build Tooling
.devcontainer/devcontainer-lock.jsonto lock Node.js and Android SDK versions for the development container.gradle/gradle-daemon-jvm.propertiesand updatedsettings.gradleto configure Gradle toolchains using the Foojay resolver convention plugin. [1] [2]local.propertiesfor local Android SDK configuration (note: this file should not be version controlled).