Skip to content

do not show lineNumbers in console editor#883

Merged
hatemhosny merged 2 commits intodevelopfrom
fix-console-line-numbers
Sep 27, 2025
Merged

do not show lineNumbers in console editor#883
hatemhosny merged 2 commits intodevelopfrom
fix-console-line-numbers

Conversation

@hatemhosny
Copy link
Copy Markdown
Collaborator

@hatemhosny hatemhosny commented Sep 27, 2025

Summary by CodeRabbit

  • Style

    • Line numbers are now hidden by default in console and embedded editor views for a cleaner, more compact interface.
  • Bug Fixes

    • Improved editor handling to avoid occasional issues from missing/invalid editor instances, reducing errors and improving stability.

@netlify
Copy link
Copy Markdown

netlify Bot commented Sep 27, 2025

Deploy Preview for livecodes ready!

Name Link
🔨 Latest commit 2d6fa4c
🔍 Latest deploy log https://app.netlify.com/projects/livecodes/deploys/68d81e2be4d2b70008ed812d
😎 Deploy Preview https://deploy-preview-883--livecodes.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Sep 27, 2025

Walkthrough

Added a Monaco editor configuration to disable line numbers in console instances and made getAllEditors resilient to nullable editors by filtering out null/undefined entries before returning the editors array.

Changes

Cohort / File(s) Summary
Monaco console options update
src/livecodes/editor/monaco/monaco.ts
Added lineNumbers: 'off' to consoleOptions during Monaco initialization to hide line numbers.
Editor collection robustness
src/livecodes/core.ts
Refactored getAllEditors to construct the editors array and filter out null/undefined entries so it only returns valid CodeEditor[].

Sequence Diagram(s)

sequenceDiagram
    participant Caller
    participant Core as core.getAllEditors()
    participant Monaco as Monaco.init(consoleOptions)

    Note over Monaco: Initialization change (UI-only)
    Caller->>Monaco: initialize editor/console
    activate Monaco
    Monaco-->>Caller: editor instance (with lineNumbers: 'off')
    deactivate Monaco

    Note over Core: Collection change (control-flow)
    Caller->>Core: getAllEditors()
    activate Core
    Core->>Core: gather potential editors (may include null/undefined)
    Core-->>Core: filter out null/undefined entries
    Core-->>Caller: return CodeEditor[] (only valid editors)
    deactivate Core
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

I nudge the margins, numbers tuck away,
Soft paw on keys, the console breathes today.
I filter shadows, only friends remain,
A tidy hutch, no stray bits to explain.
Hop—commit—then nibble on a carrot plain. 🥕

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title “do not show lineNumbers in console editor” accurately and concisely describes the primary change of disabling line numbers in the console editor without extraneous detail or ambiguity.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix-console-line-numbers

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Sep 27, 2025

Size Change: -200 B (-0.02%)

Total Size: 956 kB

ℹ️ View Unchanged
Filename Size Change
./build/404.html 1 kB 0 B
./build/app.html 250 B 0 B
./build/index.html 2.46 kB 0 B
./build/livecodes/app.js 111 kB -62 B (-0.06%)
./build/livecodes/app.css 22.4 kB 0 B
./build/livecodes/assets.js 8.62 kB +1 B (+0.01%)
./build/livecodes/assets/noop.js 18 B 0 B
./build/livecodes/assets/templates/diagrams-starter.html 2.19 kB 0 B
./build/livecodes/backup.js 3.71 kB +3 B (+0.08%)
./build/livecodes/blockly.js 13.3 kB 0 B
./build/livecodes/broadcast.js 1.19 kB -1 B (-0.08%)
./build/livecodes/bundle-types.js 4.37 kB 0 B
./build/livecodes/code-to-image.js 9.13 kB 0 B
./build/livecodes/codejar.js 17.6 kB 0 B
./build/livecodes/codemirror.js 6.33 kB 0 B
./build/livecodes/compile.page.js 2.39 kB 0 B
./build/livecodes/compile.worker.js 14.3 kB 0 B
./build/livecodes/compiler-utils.js 3.18 kB 0 B
./build/livecodes/custom-editor-utils.js 198 B 0 B
./build/livecodes/deploy.js 6.87 kB +3 B (+0.04%)
./build/livecodes/editor-settings.js 17.7 kB -9 B (-0.05%)
./build/livecodes/embed-ui.js 5.55 kB -2 B (-0.04%)
./build/livecodes/embed.js 89.5 kB -39 B (-0.04%)
./build/livecodes/export.js 3.89 kB 0 B
./build/livecodes/firebase.js 22.7 kB 0 B
./build/livecodes/format.worker.js 13.4 kB 0 B
./build/livecodes/google-fonts.js 7.12 kB 0 B
./build/livecodes/headless.js 78.2 kB -110 B (-0.14%)
./build/livecodes/i18n-ar-language-info.json 5.23 kB 0 B
./build/livecodes/i18n-ar-translation.json 9.33 kB 0 B
./build/livecodes/i18n-de-language-info.json 5.25 kB 0 B
./build/livecodes/i18n-de-translation.json 9.44 kB 0 B
./build/livecodes/i18n-en-language-info.json 4.54 kB 0 B
./build/livecodes/i18n-en-translation.json 8.03 kB 0 B
./build/livecodes/i18n-es-language-info.json 5 kB 0 B
./build/livecodes/i18n-es-translation.json 9.17 kB 0 B
./build/livecodes/i18n-fa-language-info.json 5.35 kB 0 B
./build/livecodes/i18n-fa-translation.json 9.48 kB 0 B
./build/livecodes/i18n-fr-language-info.json 5.17 kB 0 B
./build/livecodes/i18n-fr-translation.json 9.42 kB 0 B
./build/livecodes/i18n-hi-language-info.json 5.78 kB 0 B
./build/livecodes/i18n-hi-translation.json 9.95 kB 0 B
./build/livecodes/i18n-it-language-info.json 5.04 kB 0 B
./build/livecodes/i18n-it-translation.json 9.26 kB 0 B
./build/livecodes/i18n-ja-language-info.json 5.57 kB 0 B
./build/livecodes/i18n-ja-translation.json 9.61 kB 0 B
./build/livecodes/i18n-pt-language-info.json 5.05 kB 0 B
./build/livecodes/i18n-pt-translation.json 9.35 kB 0 B
./build/livecodes/i18n-ru-language-info.json 5.56 kB 0 B
./build/livecodes/i18n-ru-translation.json 10.3 kB 0 B
./build/livecodes/i18n-ur-language-info.json 5.81 kB 0 B
./build/livecodes/i18n-ur-translation.json 9.78 kB 0 B
./build/livecodes/i18n-zh-CN-language-info.json 4.9 kB 0 B
./build/livecodes/i18n-zh-CN-translation.json 8.64 kB 0 B
./build/livecodes/i18n.js 20.2 kB +25 B (+0.12%)
./build/livecodes/import-src.js 16 kB 0 B
./build/livecodes/import.js 14.5 kB 0 B
./build/livecodes/index.js 5.35 kB 0 B
./build/livecodes/lang-art-template-compiler.js 1.65 kB 0 B
./build/livecodes/lang-assemblyscript-compiler.js 290 B 0 B
./build/livecodes/lang-assemblyscript-script.js 386 B 0 B
./build/livecodes/lang-astro-compiler.js 2.34 kB 0 B
./build/livecodes/lang-clio-compiler.js 1.55 kB 0 B
./build/livecodes/lang-commonlisp-script.js 123 B 0 B
./build/livecodes/lang-cpp-script.js 1.75 kB 0 B
./build/livecodes/lang-cpp-wasm-script.js 2.84 kB 0 B
./build/livecodes/lang-csharp-wasm-script.js 2.18 kB 0 B
./build/livecodes/lang-diagrams-compiler-esm.js 5.09 kB 0 B
./build/livecodes/lang-dot-compiler.js 1.66 kB 0 B
./build/livecodes/lang-ejs-compiler.js 1.63 kB 0 B
./build/livecodes/lang-eta-compiler.js 1.65 kB 0 B
./build/livecodes/lang-fennel-compiler.js 1.61 kB 0 B
./build/livecodes/lang-gleam-compiler.js 3.09 kB 0 B
./build/livecodes/lang-go-wasm-script.js 3.26 kB 0 B
./build/livecodes/lang-haml-compiler.js 1.65 kB 0 B
./build/livecodes/lang-handlebars-compiler.js 1.92 kB 0 B
./build/livecodes/lang-imba-compiler.js 147 B 0 B
./build/livecodes/lang-java-script.js 4.05 kB 0 B
./build/livecodes/lang-jinja-compiler.js 1.65 kB 0 B
./build/livecodes/lang-julia-script.js 3.3 kB 0 B
./build/livecodes/lang-liquid-compiler.js 1.68 kB 0 B
./build/livecodes/lang-lua-wasm-script.js 205 B 0 B
./build/livecodes/lang-malina-compiler.js 2.96 kB 0 B
./build/livecodes/lang-mustache-compiler.js 1.65 kB 0 B
./build/livecodes/lang-nunjucks-compiler.js 1.93 kB 0 B
./build/livecodes/lang-perl-script.js 268 B 0 B
./build/livecodes/lang-php-wasm-script.js 347 B 0 B
./build/livecodes/lang-postgresql-compiler-esm.js 1.73 kB 0 B
./build/livecodes/lang-prolog-script.js 204 B 0 B
./build/livecodes/lang-pug-compiler.js 371 B 0 B
./build/livecodes/lang-python-wasm-script.js 1.92 kB 0 B
./build/livecodes/lang-r-script-esm.js 2.44 kB 0 B
./build/livecodes/lang-rescript-compiler-esm.js 2.16 kB 0 B
./build/livecodes/lang-rescript-formatter.js 1.52 kB 0 B
./build/livecodes/lang-riot-compiler.js 2.81 kB 0 B
./build/livecodes/lang-ruby-wasm-script.js 1.71 kB 0 B
./build/livecodes/lang-scss-compiler.js 1.71 kB 0 B
./build/livecodes/lang-solid-compiler.js 263 B 0 B
./build/livecodes/lang-sql-compiler.js 1.64 kB 0 B
./build/livecodes/lang-sql-script.js 1.95 kB 0 B
./build/livecodes/lang-svelte-compiler.js 4.69 kB 0 B
./build/livecodes/lang-tcl-script.js 1.82 kB 0 B
./build/livecodes/lang-teal-compiler.js 1.72 kB 0 B
./build/livecodes/lang-twig-compiler.js 1.64 kB 0 B
./build/livecodes/lang-vento-compiler.js 1.68 kB 0 B
./build/livecodes/lang-vue-compiler.js 6.09 kB 0 B
./build/livecodes/lang-vue2-compiler.js 3.47 kB 0 B
./build/livecodes/lang-wat-compiler.js 348 B 0 B
./build/livecodes/lang-wat-script.js 1.58 kB 0 B
./build/livecodes/language-info.js 7.71 kB +2 B (+0.03%)
./build/livecodes/monaco-lang-astro.js 947 B 0 B
./build/livecodes/monaco-lang-clio.js 639 B 0 B
./build/livecodes/monaco-lang-imba.js 7.35 kB 0 B
./build/livecodes/monaco-lang-wat.js 2.46 kB 0 B
./build/livecodes/monaco.js 10.1 kB -3 B (-0.03%)
./build/livecodes/open.js 6.2 kB -3 B (-0.05%)
./build/livecodes/processor-lightningcss-compiler.js 1.88 kB 0 B
./build/livecodes/processor-postcss-compiler.js 2.02 kB 0 B
./build/livecodes/processor-tailwindcss-compiler.js 5.2 kB 0 B
./build/livecodes/processor-unocss-compiler.js 355 B 0 B
./build/livecodes/processor-windicss-compiler.js 450 B 0 B
./build/livecodes/quill.css 697 B 0 B
./build/livecodes/quill.js 5.75 kB 0 B
./build/livecodes/resources.js 3.43 kB -1 B (-0.03%)
./build/livecodes/result-utils.js 1.17 kB 0 B
./build/livecodes/share.js 3.81 kB +1 B (+0.03%)
./build/livecodes/snippets.js 6.05 kB -5 B (-0.08%)
./build/livecodes/sync-ui.js 3.25 kB 0 B
./build/livecodes/sync.js 3.52 kB 0 B
./build/livecodes/sync.worker.js 29.7 kB 0 B
./build/livecodes/templates.js 25.4 kB 0 B
./build/sdk/livecodes.js 3.96 kB 0 B
./build/sdk/livecodes.umd.js 4.02 kB 0 B
./build/sdk/package.json 293 B 0 B
./build/sdk/react.js 4.24 kB 0 B
./build/sdk/vue.js 4.36 kB 0 B

compressed-size-action

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Sep 27, 2025

Deploying livecodes with  Cloudflare Pages  Cloudflare Pages

Latest commit: 2d6fa4c
Status: ✅  Deploy successful!
Preview URL: https://251c5e18.livecodes.pages.dev
Branch Preview URL: https://fix-console-line-numbers.livecodes.pages.dev

View logs

@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f077639 and 2d6fa4c.

📒 Files selected for processing (1)
  • src/livecodes/core.ts (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
src/livecodes/core.ts (1)
src/sdk/models.ts (1)
  • CodeEditor (1521-1558)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (11)
  • GitHub Check: Codacy Static Code Analysis
  • GitHub Check: Redirect rules - livecodes
  • GitHub Check: Header rules - livecodes
  • GitHub Check: Pages changed - livecodes
  • GitHub Check: build (18.x)
  • GitHub Check: tests (18.x, 5)
  • GitHub Check: tests (18.x, 1)
  • GitHub Check: tests (18.x, 4)
  • GitHub Check: tests (18.x, 2)
  • GitHub Check: tests (18.x, 3)
  • GitHub Check: build (18.x)

Comment thread src/livecodes/core.ts
Comment on lines +1972 to +1977
const getAllEditors = (): CodeEditor[] =>
[
...Object.values(editors),
toolsPane?.console?.getEditor?.(),
toolsPane?.compiled?.getEditor?.(),
].filter((x) => x != null);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Use a proper type guard in the filter.

The filter((x) => x != null) call still yields (CodeEditor | undefined)[], so the function body is not assignable to the declared CodeEditor[] return type and fails TypeScript’s strict checking. Please tighten the predicate to narrow the type before returning.

-  ].filter((x) => x != null);
+  ].filter((x): x is CodeEditor => x != null);
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
const getAllEditors = (): CodeEditor[] =>
[
...Object.values(editors),
toolsPane?.console?.getEditor?.(),
toolsPane?.compiled?.getEditor?.(),
].filter((x) => x != null);
const getAllEditors = (): CodeEditor[] =>
[
...Object.values(editors),
toolsPane?.console?.getEditor?.(),
toolsPane?.compiled?.getEditor?.(),
].filter((x): x is CodeEditor => x != null);
🤖 Prompt for AI Agents
In src/livecodes/core.ts around lines 1972-1977, the array filter currently uses
filter((x) => x != null) which does not narrow the type to CodeEditor[]; replace
that predicate with a proper TypeScript type guard such as filter((x): x is
CodeEditor => x != null) (or an equivalent type-predicate function) so the
result is correctly inferred as CodeEditor[] and satisfies strict checking.

@hatemhosny hatemhosny merged commit 6e0ee57 into develop Sep 27, 2025
20 checks passed
@hatemhosny hatemhosny deleted the fix-console-line-numbers branch September 27, 2025 17:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant