Commit graph

920 commits

Author SHA1 Message Date
taooceros
11eefa49b7 chore: upgrade from .NET 9 to .NET 10
Some checks failed
Build / build (push) Has been cancelled
Update all project files from net9.0 to net10.0:
- Core projects: net9.0-windows → net10.0-windows
- App projects: net9.0-windows10.0.19041.0 → net10.0-windows10.0.19041.0
- All plugin projects updated
- Microsoft.Extensions packages updated to 10.0.0-preview.1

Build verified with 1220 warnings (pre-existing), 0 errors.

💘 Generated with Crush

Assisted-by: Kimi for Coding via Crush <crush@charm.land>
2026-02-05 01:53:42 +08:00
Shengkai Lin
54827a1b25 sk
Some checks are pending
Build / build (push) Waiting to run
2026-02-04 22:03:25 +08:00
Shengkai Lin
c51c029263 Merge branch 'dev' into avalonia_migration
Some checks are pending
Build / build (push) Waiting to run
Resolved conflicts:
- Calculator.csproj: Keep Mages 3.0.1 (from dev) + Avalonia packages
- Explorer SettingsViewModel.cs: Use PromptUserSelectFileAsync for ShellPath
- ExplorerSettings.xaml: Removed (deleted in HEAD)
- packages.lock.json: Restored from dev
2026-02-01 13:33:39 +08:00
Shengkai Lin
c507bb982d chore(git): remove codemap files from tracking and add to gitignore
- Remove 13 codemap.md files from git index (Plugins/Flow.Launcher.Plugin.Explorer)
- Add **/codemap.md pattern to .gitignore
- Add .slim/ to .gitignore
2026-02-01 13:26:50 +08:00
Shengkai Lin
8ee32dfab7 fix(avalonia): fix localization keys in settings pages
- Rename Avalonia-specific keys to match existing WPF keys in en.xaml:
  - proxyEnabled -> enableProxy, proxyServer -> server, etc.
  - toggleFlowLauncher -> flowlauncherHotkey
  - install -> installLocalPluginTooltip
  - plugin_open_plugin_directory -> pluginDirectory
- Add missing Avalonia-specific keys to en.xaml:
  - hotkeyFormatTip, sourceCode, loading
  - plugin_settings_open_in_wpf_window, openSettings
- Fix Explorer plugin settings to not expand general section by default
2026-02-01 12:05:01 +08:00
Shengkai Lin
0681332238 fix(explorer): complete Avalonia migration and fix action keyword crashes
- Remove WPF views (ActionKeywordSetting, ExplorerSettings, PreviewPanel, QuickAccessLinkSettings)
- Fix NullReferenceException in ActionKeywordModel by initializing settings
- Fix (false,false) crash case in EditActionKeywordAsync
- Add null-safe dialog patterns for owner window
- Move Focus() to OnOpened for reliable control attachment
- Add using for Avalonia PreviewPanel namespace in ResultManager
- Update Main.cs to use AvaloniaControl return type
2026-01-31 23:09:41 +08:00
Hongtao Zhang
e337f9e6c5 feat(explorer): add Avalonia ActionKeywordSetting dialog
- Port ActionKeywordSetting window to Avalonia
- Includes keyword editing, enable/disable toggle, validation
- Handles Enter key to submit, Space key blocked in keyword input
2026-01-26 16:32:03 -08:00
Hongtao Zhang
c0d17672af feat(avalonia): add Avalonia settings views for 8 plugins
- Add i18n injection to Application.Resources for DynamicResource bindings
- Create Avalonia settings views for plugins:
  - Explorer (ExplorerSettings + QuickAccessLinkSettings dialog)
  - BrowserBookmark (SettingsControl + CustomBrowserSettingWindow)
  - Calculator (CalculatorSettings)
  - ProcessKiller (SettingsControl)
  - PluginsManager (PluginsManagerSettings)
  - WebSearch (SettingsControl)
  - Shell (ShellSetting + converter)
  - Program (ProgramSetting)
- Add IsAvalonia detection pattern for dual-framework dialog support
- Update 11 plugin .csproj files with CopyToAvaloniaOutput targets
- Add System.Threading.Tasks using for async RelayCommand support
2026-01-26 15:30:33 -08:00
Jack251970
382a77d2c5 Fix ShellPath directory for shell path selection
Updated OpenShellPath to use Settings.ShellPath directory when prompting for a file path, ensuring the dialog opens in the relevant location instead of the editor path directory.
2026-01-07 13:40:13 +08:00
Jeremy Wu
ffb37d3e12
New Crowdin updates (#4127) 2025-12-25 17:06:56 +08:00
Diego Henrique
9066913710
[FEATURE] Folder and File Action Keywords (#4093) 2025-12-14 12:18:21 +02:00
Jack Ye
48f67b1886
Improve and fix query result update logic issue & provide access to exact query typed by user (#3502) 2025-11-26 21:15:12 +11:00
Jeremy Wu
229987ee90
Release 2.0.3 (#4121)
Some checks failed
Publish Default Plugins / publish (push) Has been cancelled
Build / build (push) Has been cancelled
2025-11-20 19:01:51 +08:00
Jeremy Wu
533a58d083
New Crowdin updates (#4051) 2025-11-20 18:26:31 +08:00
Jack251970
2adbc334a2 Improve semaphore lock handling and code robustness
Added `lockAcquired` flags in `PluginsManifest.cs` and `Main.cs`
to ensure semaphore locks are only released if successfully
acquired, preventing potential runtime errors. Updated `finally`
blocks to conditionally release locks based on these flags.

Removed redundant cancellation check in `EverythingAPI.cs` to
simplify code, assuming cancellation is handled elsewhere. These
changes enhance reliability and maintainability of the codebase.
2025-11-07 15:30:07 +08:00
Jack251970
88fd1e56d0 Handle OperationCanceledException gracefully
Added a `catch` block for `OperationCanceledException` in
`PluginsManifest.cs` to ignore canceled operations. Updated
`EverythingAPI.cs` to use cancellation tokens with `_semaphore.WaitAsync`
and handle cancellations by exiting the method cleanly with `yield break`.
2025-11-06 20:47:54 +08:00
Jack251970
49f89e33b5 Make locking operations cancelable with tokens
Updated `_semaphore.WaitAsync` in `EverythingAPI.cs` to accept a `CancellationToken` and handle `OperationCanceledException` gracefully, returning `false` instead of propagating the exception.

Refactored locking mechanisms in `Main.cs` to use `CancellationToken` for `_win32sLock` and `_uwpsLock`. Added `try-catch` blocks to handle `OperationCanceledException` and ensure proper lock release. Methods now return `emptyResults` when operations are canceled.
2025-11-06 20:46:29 +08:00
Jack251970
d0a47c84b9 Clarify CancellationToken handling in comments
Updated comments to explain the rationale for not directly passing
CancellationToken to methods and instead checking
IsCancellationRequested within locks. This prevents unexpected
OperationCanceledException. Changes made in EverythingAPI.cs
(IsEverythingRunningAsync) and Main.cs (Win32 and UWP program
preparation). No functional changes to the code.
2025-11-06 15:39:19 +08:00
Jack251970
bfaff5cca5 Improve semaphore usage and logging clarity
Added comments in `EverythingAPI.cs` and `Main.cs` to explain
why `CancellationToken` is not directly passed to semaphore
locks, preventing unexpected `OperationCanceledException`.

Updated debug log messages in `Main.cs` for better clarity,
including changing "Start handling programs" to "Start querying
programs". Removed redundant log messages to improve logging
consistency.
2025-11-06 15:32:08 +08:00
Jack251970
30d7f67d42 Refactor token cancellation check for readability
Simplified the `if` statement that checks for token cancellation
by condensing it into a single line. This improves code readability
and eliminates unnecessary line breaks.
2025-11-06 15:30:32 +08:00
Jack251970
3d8fd1d352 Improve cancellation, locking, and logging mechanisms
Enhanced cancellation handling by adding `token.IsCancellationRequested` checks to improve responsiveness. Refactored locking mechanisms for `_win32sLock` and `_uwpsLock` using `try-finally` blocks to ensure proper acquisition and release, improving thread safety and preventing deadlocks.

Reorganized Win32 and UWP program querying logic for better modularity and readability. Replaced shared collection access with local variables to improve clarity and maintain thread safety. Simplified empty result handling by directly returning `emptyResults` when canceled.

Removed redundant debug log statements to reduce verbosity and updated remaining logs for clarity. Suppressed unused result warnings by replacing direct calls to `EverythingApiDllImport.Everything_GetMajorVersion()` with null-coalescing assignments.
2025-11-06 15:28:13 +08:00
Jack251970
db0c86d50c Remove CancellationToken from semaphore WaitAsync calls
Removed the `CancellationToken` parameter from `WaitAsync` calls
on semaphores in `EverythingAPI.cs` and `Main.cs`. This change
eliminates cancellation support for semaphore waits, likely due
to a design decision prioritizing simplicity or avoiding issues
with cancellation handling.

In `EverythingAPI.cs`, `WaitAsync(token)` was replaced with
`WaitAsync()` in two methods. Similarly, in `Main.cs`, the
`WaitAsync` calls for `_win32sLock` and `_uwpsLock` were updated
to remove the `token` parameter.

Note: This change may impact the ability to gracefully handle
cancellation during semaphore waits.
2025-11-04 14:25:55 +08:00
Diego Henrique
1bfd147421
BUG: Explorer plugin navigate path should only show results in current path (#4053) 2025-10-21 12:12:45 +11:00
Jeremy Wu
f37d4c47cc
Release 2.0.2 | Plugin 5.1.0 (#4046) 2025-10-14 13:49:29 +03:00
Jeremy Wu
02a29c6af4
New Crowdin updates (#4002) 2025-10-14 12:14:37 +03:00
Jack Ye
5ae159de5b
Move to iNKORE.UI.WPF.Modern UI Framework (#3593) 2025-10-05 13:44:40 +03:00
Jeremy Wu
a05e09908c
Release 2.0.1 (#3998) 2025-09-21 20:23:00 +08:00
Jeremy Wu
d7e1ad73cc
New Crowdin updates (#3948) 2025-09-21 14:36:35 +03:00
Jack251970
78e5bf2a60 Use Flow.Launcher.Localization to improve code quality 2025-09-21 11:50:51 +08:00
Jack251970
23d0b73e20 Fix AllEverythingSortOptions issue 2025-09-17 17:30:03 +08:00
Jack251970
29b675b26a Upgrade nuget packages 2025-09-13 14:14:59 +08:00
Jack251970
8e837b8e56 Avoid clobbering inherited NoWarn; append instead. 2025-09-06 13:37:27 +08:00
Jack Ye
8bc60e55e0
Merge branch 'dev' into nuget_package_upgrade 2025-09-06 13:31:24 +08:00
Jeremy Wu
09366f5bed
New Crowdin updates (#3931) 2025-09-03 09:32:29 +08:00
Jeremy Wu
ca01d15dde
New Crowdin updates (#3824)
* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (French)
[ci skip]

* New translations en.xaml (Arabic)
[ci skip]

* New translations en.xaml (Czech)
[ci skip]

* New translations en.xaml (Danish)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Italian)
[ci skip]

* New translations en.xaml (Japanese)
[ci skip]

* New translations en.xaml (Korean)
[ci skip]

* New translations en.xaml (Dutch)
[ci skip]

* New translations en.xaml (Polish)
[ci skip]

* New translations en.xaml (Portuguese)
[ci skip]

* New translations en.xaml (Russian)
[ci skip]

* New translations en.xaml (Slovak)
[ci skip]

* New translations en.xaml (Turkish)
[ci skip]

* New translations en.xaml (Ukrainian)
[ci skip]

* New translations en.xaml (Chinese Simplified)
[ci skip]

* New translations en.xaml (Chinese Traditional)
[ci skip]

* New translations en.xaml (Vietnamese)
[ci skip]

* New translations en.xaml (Portuguese, Brazilian)
[ci skip]

* New translations en.xaml (Norwegian Bokmal)
[ci skip]

* New translations en.xaml (Serbian (Latin))
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Spanish, Latin America)
[ci skip]

* New translations en.xaml (French)
[ci skip]

* New translations en.xaml (Slovak)
[ci skip]

* New translations en.xaml (Chinese Simplified)
[ci skip]

* New translations en.xaml (Ukrainian)
[ci skip]

* New translations en.xaml (French)
[ci skip]

* New translations en.xaml (Chinese Simplified)
[ci skip]

* New translations en.xaml (Chinese Simplified)
[ci skip]

* New translations en.xaml (Portuguese)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (French)
[ci skip]

* New translations en.xaml (Arabic)
[ci skip]

* New translations en.xaml (Czech)
[ci skip]

* New translations en.xaml (Danish)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Italian)
[ci skip]

* New translations en.xaml (Japanese)
[ci skip]

* New translations en.xaml (Korean)
[ci skip]

* New translations en.xaml (Dutch)
[ci skip]

* New translations en.xaml (Polish)
[ci skip]

* New translations en.xaml (Portuguese)
[ci skip]

* New translations en.xaml (Russian)
[ci skip]

* New translations en.xaml (Slovak)
[ci skip]

* New translations en.xaml (Turkish)
[ci skip]

* New translations en.xaml (Ukrainian)
[ci skip]

* New translations en.xaml (Chinese Simplified)
[ci skip]

* New translations en.xaml (Chinese Traditional)
[ci skip]

* New translations en.xaml (Vietnamese)
[ci skip]

* New translations en.xaml (Portuguese, Brazilian)
[ci skip]

* New translations en.xaml (Norwegian Bokmal)
[ci skip]

* New translations en.xaml (Serbian (Latin))
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Spanish, Latin America)
[ci skip]

* New translations en.xaml (Slovak)
[ci skip]

* New translations en.xaml (French)
[ci skip]
2025-08-31 13:05:43 +03:00
Jeremy Wu
e1cc50c579 Merge remote-tracking branch 'origin/master' into resolve_conflicts 2025-08-31 17:53:21 +10:00
Jack251970
b07763ad05 Suppress FLSG0007 2025-08-19 14:27:45 +08:00
Jack251970
922c3d5611 Upgrade nuget packages & Update lock files 2025-08-17 16:54:41 +08:00
Jack251970
6751942179 Use Binding instead of RelativeResource for code quality 2025-08-17 14:30:03 +08:00
Jack251970
b097aa0c29 Apply style formatter 2025-08-17 14:23:04 +08:00
Jack251970
0228e6e488 Remove unused trigger 2025-08-17 14:22:50 +08:00
Jack251970
ce8b544ff5 Display FilePath in preview panel 2025-08-17 14:20:55 +08:00
Jack251970
21299d153f Add FileName & FilePath as public properties 2025-08-17 14:18:18 +08:00
Jack251970
9d3a0f0b70 Show FileName under preview image 2025-08-17 14:14:17 +08:00
Jack251970
f1628eec66 Add MaxHeight & MaxWidth for preview image 2025-08-17 14:14:02 +08:00
Jack251970
9f8ff12155 Bind DataContext to itself 2025-08-17 14:13:32 +08:00
VictoriousRaptor
b637e0a028 Use Flow.Launcher.Localization 0.0.4 & update expect list 2025-07-27 00:17:09 +08:00
Jack Ye
54a2817962
Merge branch 'dev' into code_quality 2025-07-24 11:55:46 +01:00
Jack251970
3cfe122c7b Use new MonitorInfo class class 2025-07-23 13:51:35 +08:00
Jack251970
69c4d19f8b Improve code quality 2025-07-23 09:09:12 +08:00