Commit graph

913 commits

Author SHA1 Message Date
copilot-swe-agent[bot]
531b45210a Fix exception when setting Folder Search action keyword in Explorer plugin
- Fix (false, false) case in EditActionKeyword to break gracefully instead
  of throwing ArgumentException. This handles the valid scenario where the
  user changes a disabled keyword's text but keeps it disabled.
- Fix GetActiveActionKeywords to return an empty dictionary instead of null
  when actionKeywordStr is null/empty, preventing NullReferenceException.
- Fix ActionKeyword setter to only auto-enable when the value actually
  changes, preventing unintended side-effects during construction.
- Initialize ActionKeywordSetting backing fields directly in constructor to
  avoid the auto-enable triggering during initialization.
- Change TextBox binding to UpdateSourceTrigger=PropertyChanged so the
  checkbox auto-enables as the user types (before they click the checkbox),
  fixing the checkbox toggle issue caused by LostFocus timing.

Co-authored-by: Jack251970 <53996452+Jack251970@users.noreply.github.com>
2026-03-10 05:40:25 +00:00
Jeremy Wu
5ef6a2b688
New Crowdin updates (#4293) 2026-03-09 04:44:49 +02:00
Jack Ye
984b3dabdc
Fix Explorer plugin Quick Access items missing from general search results (#4294)
Some checks failed
Build / build (push) Has been cancelled
2026-03-04 21:25:25 +11:00
Jeremy Wu
918eb0f4a9
New Crowdin updates (#4181) 2026-02-21 12:51:21 +02: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
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
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
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
VictoriousRaptor
63009ba332 Use ContextMenu class instead of interface 2025-07-23 00:03:48 +08:00
Jack251970
af3aaa8ce7 Update labels for setting view model when culture info changes 2025-07-21 10:29:14 +08:00
Jack251970
b9e0669c46 Intialize translations in InitAsync 2025-07-21 10:27:25 +08:00
VictoriousRaptor
1e4ff43bfc Use length and count instead of Any() 2025-07-20 23:33:38 +08:00
VictoriousRaptor
ad1d42b5dd Update labels on initialization to update on language change 2025-07-20 23:23:36 +08:00
VictoriousRaptor
bea1078d20 Remove redundant function call 2025-07-20 23:20:55 +08:00
Jack Ye
ed0524d207
Merge branch 'dev' into code_quality 2025-07-20 20:02:51 +08:00