Commit Graph

44 Commits

Author SHA1 Message Date
Martín Lucas Golini
8eed5fcd58 Add configurable Tab Out support
Add an optional Tab Out behavior that moves a single cursor past configured trailing characters when pressing Tab. Expose the feature in Global Document Settings, keep it disabled by default, persist its configuration, and preserve existing selection and multi-cursor indentation behavior (SpartanJ/ecode#951).
2026-08-21 11:35:35 -03:00
Martín Lucas Golini
b02fc1f3a6 Add dynamic AI model catalog and reasoning controls
Fetch and cache the models.dev catalog asynchronously, replacing bundled model lists when catalog data is available while preserving local and user-configured providers.

Update live AI Assistant instances after refresh, defer startup requests until the UI is ready, and cancel in-flight catalog requests during shutdown. Prioritize providers with configured credentials and infer each provider's cheapest title-generation model from catalog pricing.

Add model reasoning metadata, effort controls, request serialization, chat persistence, and localized UI labels. Refresh the bundled fallback models and support API keys for arbitrary catalog providers.

Fix ACP Agent mode message chunks enqueue ordering issue (ACP thought chunks were enqueued twice while answer chunks were enqueued once).

Fix UIDropDownList WrapContent sizing so dropdown width follows its text, skin, and padding, and tighten UIDropDown automatic height sizing.
2026-08-19 01:30:56 -03:00
Martín Lucas Golini
ffabb19d60 Add configurable OpenType font features to text rendering:
Support explicit liga, calt, clig, and dlig shaping features and include
  text hints in layout caching, measurement, drawing, and character
  position calculations.

  Propagate scene-wide font feature defaults through UI text producers,
  with granular widget overrides and recursive cache invalidation. Update
  UICodeEditor and UIConsole to use shaped positioning when font features
  are enabled, including with monospaced fonts.

  Add separate UI and editor font feature settings to ecode, persist them
  as comma-separated OpenType tags, and apply changes immediately. Add
  localized menu labels, reusable Text feature conversion helpers, and
  regression coverage for shaping, positioning, propagation, and parsing.
2026-08-15 02:21:11 -03:00
Martín Lucas Golini
1b901eaa02 Fix external font handling in UIFontPickerDialog
Preserve explicitly selected font styles and correctly reconcile external fonts with the asynchronously loaded system font list.

Group same-family external fonts under the Style column when styles are visible, and expose them as distinct family entries when styles are hidden. Include filenames in localized external-font labels to distinguish alternate
font versions.

Ensure system-listed regular faces remain available after asynchronous loading and add regression coverage for collisions, selection, and hidden style behavior.
2026-08-14 13:52:55 -03:00
Martín Lucas Golini
bf750761ae ecode: add customizable debugger panel layouts
- add a reusable right-side panel managed at the application level
  - migrate debugger tabs to UITabWidgetSplitter instances
  - support moving and splitting debugger tabs across bottom and right panels
  - restrict debugger tab drops to debugger-owned panel targets
  - serialize debugger tab layouts, panel state, and table column widths
  - add pixel and percentage column-width modes to UIAbstractTableView
  - support XML/CSS configuration and an optional width-mode context menu
  - preserve percentage totals across resizing, fit-to-content, minimum widths,
    scrollbar changes, and pixel-density rounding
  - add splitter edge hiding while preserving splitter-always-show precedence
  - use EventConnection ownership for safe widget and controller lifetimes
  - validate serialized splitter layouts with structural limits
  - display project-relative source paths in debugger stack frames
  - add ecode localization strings, CSS documentation, tests, and agent rules
2026-08-14 00:17:29 -03:00
Martín Lucas Golini
6ba7de31d5 Added "Open Folder" button to the take screenshot notification. 2026-08-11 17:51:31 -03:00
Martín Lucas Golini
4789bfb5f9 ecode: add configurable screenshot support
Add an unlocked take-screenshot command and expose it under Settings -> Window with a default Print Screen binding.

Allow configuring the screenshot destination, filename pattern, and output format. Save screenshots under the ecode configuration directory by default, notify users after capture, and provide an action to open the result in the integrated image viewer.

Addresses a request in SpartanJ/ecode#950.
2026-08-11 15:43:22 -03:00
Martín Lucas Golini
6df0c0738f Add font size selection to ecode font picker:
Allow UIFontPickerDialog sections to be hidden and make ecode's UI, editor, and terminal font dialogs select both the font and its size.
Keep external fonts selectable across asynchronous font enumeration, including when they share a family name with a system font, and label them as external. Also normalize UILinearLayout weights across visible children so hidden picker columns release their space correctly.
Update font picker previews, size units, menu labels, translations, and lifetime handling.

Addresses SpartanJ/ecode#944.
2026-08-11 12:38:34 -03:00
Martín Lucas Golini
81d5854dc5 Fix SpartanJ/ecode#908. 2026-05-30 01:50:04 -03:00
Pierre Dittgen
ff96ef10c5 fix and update french translations (#177) 2026-05-01 10:51:41 -03:00
Martín Lucas Golini
bcdd88d1e6 Fix french translation xml corrupted by accident. 2026-04-29 14:54:24 -03:00
Martín Lucas Golini
4660257857 Remove ellipsis from some actions / commands (SpartanJ/ecode#892). 2026-04-26 17:37:36 -03:00
Martín Lucas Golini
f95f32eeba Add ${relative_dir} useful to solve case mentioned at https://github.com/SpartanJ/ecode/discussions/876 2026-04-15 00:34:49 -03:00
Martín Lucas Golini
98088dd44d Add color boxes support (SpartanJ/ecode#825). 2026-04-04 14:11:05 -03:00
Martín Lucas Golini
4850833b00 A couple of minor changes in AI Assistant: Added option to regenerate the conversation title (useful for when you clone a conversation and you modify it). And allow to copy conversation bubbles during AI response. 2026-02-21 12:11:33 -03:00
Pierre Dittgen
3a00ad4673 add french messages file (#171)
Co-authored-by: Martín Lucas Golini <spartanj@gmail.com>
2026-02-18 01:13:08 -03:00
NullPlane
f223283426 Update German translation [de.xml][ecode] (#170)
~~> Updated German Translation to 0.7.4_r00
2026-02-14 18:56:01 -03:00
Martín Lucas Golini
caebfc4d81 premake projects now enable text shaping by default. 2026-01-08 19:23:22 -03:00
Martín Lucas Golini
2b4b9d98b6 Clear up settings menu Open Folder options. 2025-12-28 11:54:03 -03:00
Martín Lucas Golini
5965d77e02 Add an option to configure the Settings -> Window -> "Use editor font in input fields" (this is enabled by default but not always convenient). 2025-12-21 13:00:52 -03:00
Martín Lucas Golini
1cd943ae26 Side Panel right click context menu improvements (SpartanJ/ecode#712).
Side Panel: Right click on a sub-directory and "Find in folder..." (SpartanJ/ecode#720).
File Save now defaults to the most recent save location (SpartanJ/ecode#734).
Side Panel: right click on a directory and open it on new window (SpartanJ/ecode#736).
Build and Run: fix run in terminal on Windows 8.1 (SpartanJ/ecode#740).
2025-12-07 00:24:04 -03:00
NullPlane
3e298e4252 Updated Translations [ecode] (#141)
~~> Removed duplicate key "build_settings"
  - I removed the duplicate from all three trans-
    lation files.

Typo: "filter_semicolon" is a key with value
  "Filter:" by default. The character is a colon.
  I left it unchanged as the key must still
  function and it is not changed in-code.

Co-authored-by: Martín Lucas Golini <spartanj@gmail.com>
2025-08-27 20:12:29 -03:00
Martín Lucas Golini
130301ca77 Do not create file when requested to open a file path that doesn't exists + nit. 2025-08-27 01:36:24 -03:00
Martín Lucas Golini
54aaeb4931 Spell-checked the whole project. 2025-08-22 01:33:51 -03:00
Martín Lucas Golini
e072649221 Fixes for the UITabWidget tab switcher.
Remove "Flash Cursor" (it was too broken and it's not useful after alll).
2025-05-27 01:13:44 -03:00
NullPlane
aafcb3e3ca Update de.xml (#115)
Fixed misinterpretation
2025-05-17 11:48:42 -03:00
NullPlane
6f0c880a89 Updated German translation [de.xml][ecode] (#107)
~~> Updated German Translation to 0.7.1_r00
  - changes in respect to 337ac0f, 08e92db,
    7ec6640, 2458e30
  - retrofitted missing keys
  - fixed multiple untranslated keys
2025-04-17 10:40:12 -03:00
Martín Lucas Golini
2458e30db1 Added "volatile" keyword to Adept (SpartanJ/ecode#412).
Fixed incorrectly exported string.
2025-04-09 11:02:44 -03:00
Martín Lucas Golini
7ec6640a9a Update English translation (SpartanJ/ecode#122). 2025-04-08 18:31:17 -03:00
NullPlane
b4fc9f38fe Updated German translation [de.xml][ecode] (#104)
~~> Updated German Translation to 0.7.0_r00
  - Changed the version identifier convention in the metadata to something
    more useful.
  - Thus, removed version_ecode from meta and de.xml is now a string
    again who cares
  - Retrofitted missing keys
  - added linebreak in "feature_not_supported_in_os"
  - fixed some janky strings in "escape_sequence_tooltip"
2025-04-08 18:30:56 -03:00
Bytequill
08e92db506 Clang-format; Correctly add command discordrpc-reconnect; Check for doLanguageIcons config option 2025-02-11 22:22:25 +01:00
Martín Lucas Golini
337ac0f334 Hint user to configure keybindings from plugins. 2025-01-25 22:23:53 -03:00
NullPlane
738a6dc054 Updated German translation [de.xml]
German translation to 0.31 for ecode 0.6.4+
Changes in respect to ef7908f.
2025-01-23 21:27:23 +01:00
Martín Lucas Golini
ef7908fdb6 Added ${current_doc_dir} build variable (issue SpartanJ/ecode#383). 2025-01-12 11:44:48 -03:00
Martín Lucas Golini
8242274059 Fix de i18n mistake. 2024-11-13 11:47:17 -03:00
NullPlane
e3c48f7798 Updated German translation [de.xml]
German translation to 0.31 for ecode 0.6.1+
Changes in respect to af6a42f.
2024-10-22 17:39:24 +02:00
Martín Lucas Golini
af6a42f2af Update en.xml translation file. 2024-10-19 18:44:29 -03:00
NullPlane
accd91349c Updated German translation [de.xml]
German translation to 0.3 for ecode 0.6.1+
Changes in respect to 7b1c39f.
2024-10-04 14:40:00 +02:00
Martín Lucas Golini
7b1c39f9bc Update English translations file. 2024-04-12 20:13:25 -03:00
Martín Lucas Golini
3eda524fbe Added german and chinese translations.
Added Brython support (SpartanJ/ecode#172).
2024-03-06 19:54:51 -03:00
Martín Lucas Golini
a9e3b8a19b ecode i18n fixes. 2024-02-17 19:35:03 -03:00
Martín Lucas Golini
56ca57fc04 Add language selection menu. 2024-02-09 23:22:09 -03:00
Martín Lucas Golini
9c2822e3d6 More work to get better i18n support. 2024-02-09 22:39:19 -03:00
Martín Lucas Golini
f2b42b7191 Enable multi language. Added language definition. 2024-02-07 20:01:23 -03:00