Commit graph

76 commits

Author SHA1 Message Date
Göran W
1a8acbf934
feature: diff - toggle show all lines (#615) (#652)
* Renamed 1 of 2 SyncScrollOffset props, for clarity

The property "SyncScrollOffset" in TextDiff is distinct from the one with the same name in TwoSideTextDiff. These two properties are used in separate (though slightly related) ways and are not really connected.

The one in TwoSideTextDiff is mainly used to keep the scroll-pos of the two SingleSideTextDiffPresenter views in sync (aligned), while the one in TextDiff is used only to preserve/reset the scroll-pos in the single CombinedTextDiffPresenter view when (re)loading Diff Content (so not really syncing anything).

To clarify this and to make the two properties more distinguishable, I renamed the one in TextDiff to simply "ScrollOffset".

* Added icon and string for "Show All Lines"

New StreamGeometry "Icons.Lines.All" using SVG path from "text_line_spacing_regular" at https://avaloniaui.github.io/icons.html.
New String "Text.Diff.VisualLines.All" for en_US locale (no translations yet).

* Implemented new TextDiff feature "Show All Lines" (toggle)

* Added new ToggleButton in DiffView toolbar, visible when IsTextDiff, disabling the buttons "Increase/Decrease Number of Visible Lines" when on.

* Added new Preference property "UseFullTextDiff".

* Added StyledProperty "UseFullTextDiffProperty" in TextDiffView, with a DataTemplate binding to the corresponding preference property.

* When changed, UseFullTextDiffProperty is handled identically as UseSideBySideDiffProperty (via new helper method RefreshContent(), for unification with OnDataContextChanged()).

* Added new method DiffContext.ToggleFullTextDiff() for changing the preference property and reloading the diff content.

* Implemented the new feature by overriding the "unified" (number of context lines) for Commands.Diff() with a very high number.

NOTE: The number used (~1 billion) is supposed to be the highest one working on Mac, according to this forum comment: https://stackoverflow.com/questions/28727424/for-git-diff-is-there-a-uinfinity-option-to-show-the-whole-file#comment135202820_28846576
2024-11-04 16:32:51 +08:00
leo
1044915be1
refactor: OpenAI integration
* supports configure multiple services
* supports select service when generate commit message by OpenAI

Signed-off-by: leo <longshuang@msn.cn>
2024-10-28 11:00:11 +08:00
leo
12bb915bd8
code_review: PR #596
- Add `ViewModels.Preference.PrepareOpenAIPrompt()` method to generate default prompt instead of a const fallback value. Therefore, it is more convenient for us to modify the default value in the Preference dialog.
- Modify the default prompts. Rename `SubjectPrompt` to `GenerateSubjectPrompt`. Rename `SummaryPrompt` to `AnalyzeDiffPrompt`.
- Rewrite the way to build OpenAI user content for subject generation

Signed-off-by: leo <longshuang@msn.cn>
2024-10-24 10:22:06 +08:00
Douglas Cunha
2f68aed817
feat: improve commit message generation with AI prompts (#596)
- Refactor the commit message generation process to utilize default prompts and enhance clarity while eliminating redundancy.
- Added new properties for subject and summary prompts, while improving cancellation support in async task handling.
- feat: add AI prompts for commit message generation.
- Updated the formatting of the package reference for consistency in the project file.
- Add properties for managing OpenAI subject and summary prompts in the Preference view model.
- Refactor layout and add new input fields for AI subject and summary prompts in the preferences view.
2024-10-24 09:31:05 +08:00
leo
a5594130ed
code_style: run dotnet format
Signed-off-by: leo <longshuang@msn.cn>
2024-10-23 15:28:09 +08:00
leo
0539a94cbe
feature: mark deleted repository and auto remove it after scan default clone dir (#576) 2024-10-20 20:42:14 +08:00
leo
21e15a1af4
feature: add a toggle in perference to show author time instead of committer time in graph (#558) 2024-10-12 09:56:33 +08:00
leo
c8a13bc4e9
enhance: returns the instance of ViewModels.Preference directly if it exists 2024-10-09 15:58:44 +08:00
leo
1ba294a07b
refactor: move auto-fetch from global preference to repository settings
Some checks are pending
Continuous Integration / Build (push) Waiting to run
Continuous Integration / Prepare version string (push) Waiting to run
Continuous Integration / Package (push) Blocked by required conditions
2024-09-26 10:50:21 +08:00
leo
c0f59c441b
feature: allow user to select the chart fill color 2024-09-24 12:14:51 +08:00
leo
84fda6a8db
feature: add property RestoreOnStartup property to ViewModels.Workspace (#488) 2024-09-18 21:35:33 +08:00
leo
bc633e4085
code_review: PR #480
* remove `string.IsNullOrEmpty(OS.ShellOrTerminal)` checking from detail backend since it has been checked by `Native.OS.OpenTerminal`
* remove `ViewModels.Preference.IsTerminalConfigured` because it is only used by itself (Unlike `IsGitConfigured`).
* add `Native.OS.TestShellOrTerminal` and use it instead of setting `Preference.ShellOrTerminal` directly, because we have binded a callback that will save preference into file when its property changed. It may cause lag in some enviroments if we saving preference into file too frequently (see PR #436).
* run `dotnet format`
2024-09-17 22:09:51 +08:00
Aikawa Yataro
54ab625931
enhance: select any terminal when none is set 2024-09-17 07:20:17 +00:00
leo
fb0120d338
refactor: terminal/shell integration (#471) 2024-09-14 12:09:50 +08:00
leo
16f8e2fd0b
feature: simple implementation for generating commit message by OpenAI (#456) 2024-09-12 09:42:47 +08:00
leo
7b2da25c0b
enhance: do NOT save preference.json while loading 2024-09-10 16:37:39 +08:00
leo
853d5ce20e
code_style: remove debug code 2024-09-10 11:20:59 +08:00
leo
69117e8ee9
refactor: use custom color picker instead of Avalonia.Controls.ColorPicker 2024-09-10 11:02:34 +08:00
leo
0190c2111d
enhance: workspace tooltip (#445) 2024-09-09 18:47:53 +08:00
leo
ebc112a627
feature: workspace support (#445) 2024-09-09 18:26:43 +08:00
leo
931831431b
enhance: reduce the times calling Save() (#436) 2024-09-02 14:14:52 +08:00
leo
9fe8ffcea9
code_review: PR #436
It's ok to call `Save()` multiple times after property of `ViewModels.Preference` changed immediately. If we delay the saving operation 3 seconds after the property changed event, we reduce the times calling `Save`, but the issue metioned in #436 may still exists.
2024-09-02 12:20:11 +08:00
Gadfly
c85293c86a
enhance: support save RepositoryNode changes instantly 2024-09-02 12:05:24 +08:00
Gadfly
28b6ce4993
enhance: save preference.json instantly 2024-09-02 10:51:48 +08:00
leo
8f7567a060
feature: do NOT save visual diff context lines 2024-08-25 11:33:38 +08:00
leo
4120331eda
refactor: there's no need to use AvaloniaList since we have replaced the TreeView with custom control 2024-08-23 11:24:31 +08:00
leo
d5e51d1f32
feature: supports using native window frame on Linux (#390) 2024-08-22 12:37:26 +08:00
leo
d66053a42d
code_style: run dotnet format 2024-08-20 11:53:37 +08:00
leo
9057b71f2d
refactor: rewrite the font configuration (#366)
* input font name directly instead of a font picker because localized font family name is not supported by Avalonia
* fallback monospace font to default font
* remove unused code
2024-08-19 17:14:41 +08:00
leo
84b8735d6c
code_style: run dotnet format 2024-08-18 23:14:44 +08:00
leo
7fe1df20cc
refactor: delay starting background tasks
* start background task only it is needed
* solve the problem that we can not use `ViewModels.Preference.Instance` until resource ready
* remove avatar sever settings
2024-08-18 23:10:54 +08:00
leo
de2f70b8ea
feature: supports display tags in a tree (#350) 2024-08-11 18:12:58 +08:00
leo
b18f86dde9
fix: ui not updated after font changed 2024-07-30 10:29:07 +08:00
leo
aea61e0067
feature: add a toggle button in Preference dialog to only use monospace font in code editor (#292) 2024-07-29 20:20:27 +08:00
leo
720b2b65f3
code_style: change static methods of ViewModels.Preference to member function 2024-07-22 15:34:31 +08:00
leo
1eb77a5e49
feature: add a toggle button to change the commit time display mode to time period it is passed from now (#259) 2024-07-16 12:16:08 +08:00
leo
f4eca45754
code_style: remove all IDE warnings 2024-07-15 00:30:31 +08:00
leo
a807aa9e12
code_style: remove all IDE warnings 2024-07-14 15:55:15 +08:00
leo
e5462f0086
code_style: run dotnet format to apply code style rules 2024-07-10 12:12:14 +08:00
leo
7ee3db500a
refactor: json serialization
* move all converters to `App.JsonCodeGen.cs`
* use `ColorConverter` instead of parsing colors manually
2024-07-08 16:45:51 +08:00
leo
16d9b627f0
refactor: rename Models.CustomColorSchema to Models.ThemeOverrides because it do NOT contains only colors currently. 2024-07-08 16:21:57 +08:00
leo
7f389b2e6f
refactor: move settings of repository, such as filters, commit message, from Preference to each repository's gitdir.
* avoid invalid repository setting remains in preference.json
* supports to restore tabs that not added to the Welcome page
2024-07-01 11:57:13 +08:00
leo
faabfd6b80
enhance: save last visual line numbers in diff view (#207) 2024-06-25 18:15:31 +08:00
leo
dca8f8b39b
feature: warn when commit subject line goes beyond a certain number of characters (#201) 2024-06-23 15:45:54 +08:00
leo
fec2b402e0
code_review: PR #187
* replace icon with common whitespace icon in other editors
* button tooltip translations
* rename `_showHiddenSymbols` to `_showHiddenSymbolsInDiffView` to make its usage clear
* change the order of this button
2024-06-19 18:15:32 +08:00
Giuseppe Lippolis
9c7ac5b067 feature: Allows you to show space and tab symbols in DiffView 2024-06-19 11:33:34 +02:00
leo
c56d0cf85e
refactor: external diff merge tool - supports to use difftool/mergetool settings from git config directly (#181) 2024-06-18 12:10:38 +08:00
leo
f977e76ea7
feature: remember window size and layout information (#165) 2024-06-11 16:36:52 +08:00
leo
62e5ed8a42
enhance: supports user overrides the default color schema 2024-06-05 18:23:28 +08:00
leo
802b429cc8 enhance: supports word wrap in text diff view 2024-06-04 20:26:47 +08:00