Skip to content

chore: promote preview to main - #355

Merged
1lck merged 131 commits into
mainfrom
preview
Aug 30, 2026
Merged

chore: promote preview to main#355
1lck merged 131 commits into
mainfrom
preview

Conversation

@1lck

@1lck1lck commented Aug 30, 2026

Copy link
Copy Markdown
Owner

发布说明

将当前预发布分支 preview 晋级到 main

说明

  • preview 是持续开发汇总分支;本 PR 包含上次发布后累积的开发提交。
  • 已核对上次发布合并提交 f669e33b,其相对当时 preview 没有额外代码差异。
  • 本地使用 git merge-tree 模拟 main <- preview 合并,未发现文本冲突。
  • 发布工作流主要构建和发布产物;Homebrew Cask 元数据会通过独立自动 PR 更新。

请在 CI 全部通过后合入。

puppyben1and others added 30 commits August 28, 2026 14:44
…line
bean_index rebuilt regular expressions inside its per-line loop: five on every
line through has_annotation, is_injection_context, and constructor_regex, plus
seven more on each type declaration. Over a workspace with thousands of Java
sources that reached roughly ten million compilations.
Hold the fixed patterns in function-scoped LazyLock statics, cache the patterns
for the annotations this module recognizes, and hoist the type-dependent
constructor pattern out of the line loop. The scan is still full and the
traversal order is unchanged.
On a 7774-file Maven workspace this takes spring.index from 491.74s to 2.40s
with a byte-identical response: same 3519348 bytes and SHA-256 across 16
properties, 327 values, 111 property references, 1870 diagnostics, 2338 beans,
4479 injections, and 4103 endpoints.
Refs #299
fix(macos): disable GitHub Pull Request integration
Wz58luckand others added 29 commits August 30, 2026 15:32
Add three mouse-reachable entries for jumping to a line: the Navigate
menu, the editor context menu, and the status bar caret label, all
opening a shared go-to-line bar styled after the find bar. Input
accepts 1-based line or line:column, converges out-of-range values
against the live document, selects the target line through the
existing editorNavigationTarget pathway (now carrying
selectsWholeLine), and records navigation history so Cmd+[ returns
to the departure position. The bar and the find bar are mutually
exclusive; Cmd+L is registered in the command catalog and remappable
in Keymap settings.
Swap the in-editor go-to-line bar for a small modal "Go to Line:Column"
window: a single [Line] [:column]: input prefilled with the caret's
1-based position and fully selected, with Cancel/OK buttons. Return
and OK jump through the same parser and navigation pathway, invalid
input disables OK, and Esc, Cancel, or the close button dismiss
without side effects. Every entry point (Navigate menu, editor
context menu, status bar caret label, Cmd+L) funnels through the
chrome visibility flag via a shared presenter, so the workbench and
standalone editor windows both stay covered. Also unify all
go-to-line comments to English to match the surrounding files.
The dialog panel fell back to the system appearance and rendered light
inside a dark-themed editor. Apply the same AppThemePreference window
appearance the workbench windows use, so the dialog matches the editor
theme in system, light, and dark modes. Widen the private
AppThemePreference.windowAppearance helper for reuse.
…og count
The Simplified Chinese localization test requires every command catalog
entry to carry translated title and subtitle strings, and the keyboard
shortcut test pins the catalog size. Cover the new go-to-line command
and bump the expected count to 33.
feat(macos): add editor find options and replace-in-file
…overs
The Branch and User filters in the Git Log filter bar used native NSMenu
menus that grew to screen height on repositories with many references or
authors, covering the whole workbench (issue #302). Replace them with
custom SwiftUI popovers anchored under their filter chips:
- Branch: a two-level menu with the All Branches reset entry, starred
shortcuts for the current branch and its upstream, and group rows
(Local, per-remote, Tags) that open a bounded flyout column; typing
falls back to a flat filtered list.
- User: a flat bounded list with pinned reset entries and stable author
ordering.
Both popovers are searchable, cap their height with internal scrolling,
and reuse the existing selectGitReference action without any data-layer
or shared-contract changes.
Review feedback on this PR is folded in: fixed rows are modeled with an
explicit Kind enum; browse and search modes follow identical per-row
rules (full names, upstream-only detail, pinned entries surviving
search); sections carry an explicit isPinned flag; the branch menu is
injected as data instead of a builder closure; selection matching lives
on the item types; fixed labels render and match through a single
GitLogFilterFixedLabel source so localized text and the English key both
find them; the popover opens at its compact width without dead space;
zh-Hans gains the missing translations with a table test and bilingual
matching test.
…o-line-preview
# Conflicts:
#	macos/Resources/zh-Hans.lproj/Localizable.strings
#	macos/Sources/Lithe/Models/AppModel/AppModel+FeatureState.swift
#	macos/Sources/Lithe/Models/Keymap/LitheCommandCatalog.swift
#	macos/Sources/Lithe/Models/LitheAction.swift
#	macos/Tests/LitheTests/EditorChromeModelTests.swift
feat(macos): replace git log filter menus with bounded IDEA-style popovers
Address review feedback on the go-to-line PR:
- Line-only jumps keep selecting the whole target line, but an
explicitly entered column now places the caret at that column via a
hasExplicitColumn flag threaded through GoToLineInput and the
navigation target, so "120:35" no longer lands at column one.
- GoToLineInput.clamped and the new GoToLineSelection helper share the
editor's line-index rules (LF, CRLF, CR), so CR-only files jump to
the right line and CRLF whole-line selections no longer include the
carriage return. applyNavigationTargetIfNeeded now delegates to the
helper, giving the final caret/selection a unit-tested pure
implementation with CRLF, CR, and edge-case regression coverage.
- The AppKit dialog strings (title, label, Cancel, OK) and the context
menu item now resolve through Localizable.strings instead of literal
English, with new Simplified Chinese entries.
The regression test called clamped without forwarding the parsed
hasExplicitColumn flag, unlike the production goToLine path, so the
preservation assertion failed. Mirror the production call and also
assert the converged target.
feat(macos): 添加编辑器按行号跳转对话框
Reviewed and validated; all required CI checks passed.
@1lck
1lck merged commit ffa6a67 into mainAug 30, 2026
13 checks passed
Sign up for freeto 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.

7 participants

@1lck@puppyben1@xiaoyumuxi@Farewell0375@Wz58luck@Rangsh@Mucheen