Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
05d9b96
Add Everything 1.5 SDK
VictoriousRaptor Mar 21, 2026
9fca737
Introduce Everything SDK 3 for Everything 1.5
VictoriousRaptor Mar 21, 2026
84edda4
Fix missing search
VictoriousRaptor Mar 22, 2026
9d1c0ae
Add fast sort detection
VictoriousRaptor Mar 22, 2026
2c5a4b5
Merge branch 'dev' into everything-1.5-sdk
VictoriousRaptor Mar 22, 2026
9246dea
Add highlight
VictoriousRaptor Mar 22, 2026
5fbb520
Fix highlighting issue
VictoriousRaptor Mar 28, 2026
737e2b4
Merge branch 'dev' into everything-1.5-sdk
VictoriousRaptor Mar 28, 2026
4bf530b
Fix LoadLibrary return type to IntPtr and use Win32Exception for erro…
Copilot Mar 28, 2026
cc62362
Fix LoadLibrary return type to IntPtr and use Win32Exception for erro…
VictoriousRaptor Mar 28, 2026
e5cc911
Extract Everything3 functions
VictoriousRaptor Mar 28, 2026
9eeadfe
Add option for Everything 1.5 support
VictoriousRaptor Mar 28, 2026
c702ed0
Allow customizing Everything 1.5 instance name
VictoriousRaptor Mar 28, 2026
9f579b2
Use variable for default name
VictoriousRaptor Mar 28, 2026
68f0f47
Clear handle after successful unload
VictoriousRaptor Mar 28, 2026
584ce07
Refactor
VictoriousRaptor Mar 28, 2026
96b6664
Fix default everything instance name
VictoriousRaptor Mar 29, 2026
4db9d67
Handle the timeout result from WaitAsync(TimeSpan) before releasing t…
VictoriousRaptor Mar 29, 2026
5fa18c8
Stop dynamically loading Everything SDK
VictoriousRaptor Mar 29, 2026
7254dc0
Clean code and revert useless changes
VictoriousRaptor Mar 29, 2026
01e6697
update expected text
VictoriousRaptor Mar 29, 2026
a78397d
Revert unnecessary changes
VictoriousRaptor Mar 29, 2026
5a6a461
Throw error on add sort option fails
VictoriousRaptor Mar 29, 2026
825674f
Move default alpha instance name to Everything Search Manager
VictoriousRaptor Apr 3, 2026
ba2e8bd
Refactor EverythingSearchManager
VictoriousRaptor Apr 4, 2026
ca3cb6e
Extract commone code in API
VictoriousRaptor Apr 4, 2026
cfdff0d
Extract methods of API v3
VictoriousRaptor Apr 4, 2026
f439a6d
Update exceptions check
VictoriousRaptor Apr 4, 2026
6811cdd
Delete Plugins/Flow.Launcher.Plugin.Explorer/Everything-1.5-architect…
VictoriousRaptor Apr 4, 2026
e21f300
Destroy the Everything3 client after incrementing run count
VictoriousRaptor Apr 4, 2026
ae6720b
Update exceptional message
VictoriousRaptor Apr 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/actions/spelling/expect.txt
Original file line number Diff line number Diff line change
Expand Up @@ -108,3 +108,4 @@ Msix
dummyprofile
browserbookmark
copyurl
PInvoke
Binary file not shown.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we still use x86? Maybe these can be removed?

Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@
<None Update="EverythingSDK\x86\Everything.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="EverythingSDK\x64\Everything3.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="EverythingSDK\x86\Everything3.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>

<ItemGroup>
Expand Down
9 changes: 8 additions & 1 deletion Plugins/Flow.Launcher.Plugin.Explorer/Languages/en.xaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<ResourceDictionary
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:system="clr-namespace:System;assembly=mscorlib">
Expand Down Expand Up @@ -44,6 +44,7 @@
<system:String x:Key="plugin_explorer_previewpanel_date_and_time_format_label">Date and time format</system:String>
<system:String x:Key="plugin_explorer_everything_sort_option">Sort Option:</system:String>
<system:String x:Key="plugin_explorer_everything_installed_path">Everything Path:</system:String>
<system:String x:Key="plugin_explorer_everything_15_instance_name">Everything 1.5 instance name (requires app restart): </system:String>
<system:String x:Key="plugin_explorer_launch_hidden">Launch Hidden</system:String>
<system:String x:Key="plugin_explorer_editor_path">Editor Path</system:String>
<system:String x:Key="plugin_explorer_shell_path">Shell Path</system:String>
Expand Down Expand Up @@ -151,7 +152,11 @@

<!-- Everything -->
<system:String x:Key="flowlauncher_plugin_everything_sdk_issue">Failed to load Everything SDK</system:String>
<system:String x:Key="flowlauncher_plugin_everything_architecture_check">Please check whether your system is x86 or x64</system:String>
<system:String x:Key="flowlauncher_plugin_everything_is_not_running">Warning: Everything service is not running</system:String>
<system:String x:Key="flowlauncher_plugin_everything_15_unavailable">Warning: Everything 1.5 is unavailable</system:String>
<system:String x:Key="flowlauncher_plugin_everything_15_resolution">Ensure Everything is running and verify the configured instance name</system:String>
<system:String x:Key="flowlauncher_plugin_everything_15_sort_warning">Warning: Everything 1.5 is unavailable. The service may not be running, or the instance name may be invalid</system:String>
<system:String x:Key="flowlauncher_plugin_everything_query_error">Error while querying Everything</system:String>
<system:String x:Key="flowlauncher_plugin_everything_sort_by">Sort By</system:String>
<system:String x:Key="flowlauncher_plugin_everything_sort_by_name_ascending">Name &#x2191;</system:String>
Expand Down Expand Up @@ -186,6 +191,7 @@

<system:String x:Key="flowlauncher_plugin_everything_search_fullpath">Search Full Path</system:String>
<system:String x:Key="flowlauncher_plugin_everything_enable_run_count">Enable File/Folder Run Count</system:String>
<system:String x:Key="flowlauncher_plugin_everything_enable_15_support">Use Everything 1.5 (requires app restart)</system:String>

<system:String x:Key="flowlauncher_plugin_everything_click_to_launch_or_install">Click to launch or install Everything</system:String>
<system:String x:Key="flowlauncher_plugin_everything_installing_title">Everything Installation</system:String>
Expand Down Expand Up @@ -214,3 +220,4 @@
<system:String x:Key="OneYearAgo">1 year ago</system:String>
<system:String x:Key="YearsAgo">{0} years ago</system:String>
</ResourceDictionary>

5 changes: 3 additions & 2 deletions Plugins/Flow.Launcher.Plugin.Explorer/Main.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,9 @@ public Task InitAsync(PluginInitContext context)
searchManager = new SearchManager(Settings, Context);
ResultManager.Init(Context, Settings);

EverythingApiDllImport.Load(Path.Combine(Context.CurrentPluginMetadata.PluginDirectory, "EverythingSDK",
Environment.Is64BitProcess ? "x64" : "x86"));
var sdkDirectory = Path.Combine(Context.CurrentPluginMetadata.PluginDirectory, "EverythingSDK",
Environment.Is64BitProcess ? "x64" : "x86");
Settings.EverythingManagerInstance.InitializeApi(sdkDirectory);
return Task.CompletedTask;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
using System;
using System.ComponentModel;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;

namespace Flow.Launcher.Plugin.Explorer.Search.Everything
{
internal static class Everything3ApiDllImport
{
private static IntPtr _dllHandle = IntPtr.Zero;
internal static bool IsLoaded => _dllHandle != IntPtr.Zero;

public static void Load(string directory)
{
if (_dllHandle != IntPtr.Zero)
{
return;
}

var path = Path.Combine(directory, Dll);
_dllHandle = LoadLibrary(path);
if (_dllHandle == IntPtr.Zero)
{
throw new Win32Exception(Marshal.GetLastPInvokeError());
}
}

[DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
private static extern IntPtr LoadLibrary(string name);

private const string Dll = "Everything3.dll";

[DllImport(Dll, CharSet = CharSet.Unicode)]
internal static extern IntPtr Everything3_ConnectW(string instanceName);

[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_DestroyClient(IntPtr client);

[DllImport(Dll)]
internal static extern IntPtr Everything3_CreateSearchState();

[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_DestroySearchState(IntPtr searchState);

[DllImport(Dll, CharSet = CharSet.Unicode)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_SetSearchTextW(IntPtr searchState, string search);

[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_SetSearchRegex(IntPtr searchState, bool matchRegex);

[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_SetSearchMatchPath(IntPtr searchState, bool matchPath);

[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_SetSearchHideResultOmissions(IntPtr searchState, bool hideResultOmissions);

[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_SetSearchViewportOffset(IntPtr searchState, nuint offset);

[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_SetSearchViewportCount(IntPtr searchState, nuint count);

[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_ClearSearchSorts(IntPtr searchState);

[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_AddSearchSort(IntPtr searchState, uint propertyId, bool ascending);

[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_ClearSearchPropertyRequests(IntPtr searchState);

[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_AddSearchPropertyRequest(IntPtr searchState, uint propertyId);

[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_AddSearchPropertyRequestHighlighted(IntPtr searchState, uint propertyId);

[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_GetSearchPropertyRequestHighlight(IntPtr searchState, nuint index);

[DllImport(Dll)]
internal static extern IntPtr Everything3_Search(IntPtr client, IntPtr searchState);

[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_DestroyResultList(IntPtr resultList);

[DllImport(Dll)]
internal static extern nuint Everything3_GetResultListViewportCount(IntPtr resultList);

[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_IsFolderResult(IntPtr resultList, nuint resultIndex);

[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_IsRootResult(IntPtr resultList, nuint resultIndex);

[DllImport(Dll, CharSet = CharSet.Unicode)]
internal static extern nuint Everything3_GetResultFullPathNameW(IntPtr resultList, nuint resultIndex, StringBuilder buffer, nuint bufferSizeInWChars);

[DllImport(Dll, CharSet = CharSet.Unicode)]
internal static extern nuint Everything3_GetResultPropertyTextHighlightedW(IntPtr resultList, nuint resultIndex, uint propertyId, StringBuilder buffer, nuint bufferSizeInWChars);

Check warning on line 118 in Plugins/Flow.Launcher.Plugin.Explorer/Search/Everything/Everything3ApiDllImport.cs

View workflow job for this annotation

GitHub Actions / Check Spelling

`WChars` is not a recognized word. (unrecognized-spelling)

[DllImport(Dll, CharSet = CharSet.Unicode)]
internal static extern nuint Everything3_GetResultPropertyTextW(IntPtr resultList, nuint resultIndex, uint propertyId, StringBuilder buffer, nuint bufferSizeInWChars);

Check warning on line 121 in Plugins/Flow.Launcher.Plugin.Explorer/Search/Everything/Everything3ApiDllImport.cs

View workflow job for this annotation

GitHub Actions / Check Spelling

`WChars` is not a recognized word. (unrecognized-spelling)

[DllImport(Dll)]
internal static extern uint Everything3_GetResultRunCount(IntPtr resultList, nuint resultIndex);

[DllImport(Dll, CharSet = CharSet.Unicode)]
internal static extern uint Everything3_IncRunCountFromFilenameW(IntPtr client, string fileName);

[DllImport(Dll)]
internal static extern uint Everything3_GetLastError();


[DllImport(Dll)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool Everything3_IsPropertyFastSort(IntPtr client, uint propertyId);
}
}
Loading
Loading