{"_id":"com.unity.searcher","name":"com.unity.searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","provider":"upm","versions":{"4.9.5":{"_upm":{"changelog":"- Update minimum Editor version to 6000.0\n- Fixed spaces disappearing between highlighted matches in search results (UUM-146469)."},"unity":"6000.0","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.searcher@4.9/manual/index.html","name":"com.unity.searcher","version":"4.9.5","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"a463122f2c00f83398f41790942a0793431e70ea","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.9.5.tgz"}},"4.9.4":{"_upm":{"changelog":"- Fixed a bug where spaces are removed when highlighted.\n- Changed VisualSplitter to twoPaneSplitView and updated indentation"},"unity":"2019.1","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.searcher@4.9/manual/index.html","name":"com.unity.searcher","version":"4.9.4","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"d45a78918735dd5b1de2247c6e3567c60aa24115","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.9.4.tgz"}},"4.9.3":{"_upm":{"changelog":"- Fixed a bug where spaces are removed when highlighted.\n- Changed VisualSplitter to twoPaneSplitView and updated indentation"},"unity":"2019.1","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.searcher@4.9/manual/index.html","name":"com.unity.searcher","version":"4.9.3","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"1e17ce91558d1d9127554adc03d275f39a7466a2","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.9.3.tgz"}},"4.9.2":{"_id":"com.unity.searcher@4.9.2","upm":{"changelog":"- Fixed a bug that stopped keyboard keys from affecting navigation and interaction with search results list, unless user explicitly focused/click on list using the mouse [1396759]"},"type":"asset","_from":"file:/tmp/com.unity.searcher@4.9.2-lfj_p7ds.tgz","unity":"2019.1","upmCi":{"footprint":"c003fc96927da2c24f950b99138713a642761fd1"},"samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"_resolved":"/tmp/com.unity.searcher@4.9.2-lfj_p7ds.tgz","_integrity":"sha512-YBWXpjeJ7+9wxycQhpzO/RY6LtCw83mrCo0UFONoLcwCK6Wl5vAojmoh7981r/qC6ciprERnw7Oey5lGvMF72A==","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.searcher.git","type":"git","revision":"7f9f75b04e97cf09c8ddc3968d059e74d6a2460a"},"_npmVersion":"7.5.2","_nodeVersion":"12.21.0","name":"com.unity.searcher","version":"4.9.2","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"90d011a70418fd5b0f4b8e86df39444d2af228dd","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.9.2.tgz"}},"4.9.1":{"_id":"com.unity.searcher@4.9.1","type":"asset","_from":"file:com.unity.searcher-4.9.1.tgz","unity":"2019.1","upmCi":{"footprint":"08d898b50177ce0d3685c0b023998a8d6dd55570"},"samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"_resolved":"/pkgprom/com.unity.searcher-4.9.1.tgz","_integrity":"sha512-1sKjOJLbeBbnUFYGE5CN7NF+yRLKGOMtdowHNwAdu+ndHjdtPEoPy/ufE0OaOx8I2/tzboaht+/k68wgbMKa5g==","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.searcher.git","type":"git","revision":"9e68a2a9ba29bd6783bc91d15ff82bbd459f2163"},"_npmVersion":"7.5.2","_nodeVersion":"12.21.0","name":"com.unity.searcher","version":"4.9.1","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"eb6ead789efdc34c55020fb72762d8ee033c6666","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.9.1.tgz"}},"4.3.2":{"_id":"com.unity.searcher@4.3.2","type":"asset","unity":"2019.1","upmCi":{"footprint":"446e57c3161c2a422ead18b927f81939131b5531"},"readme":"# Searcher\r\n\r\nUse the Searcher package to quickly search a large list of items via a popup window. For example, use Searcher to find, select, and put down a new node in a graph. The Searcher package also includes samples and tests.\r\n\r\n## Features\r\n\r\n![GitHub Logo](/Documentation~/images/tree_view.png) ![GitHub Logo](/Documentation~/images/quick_search.png)\r\n* Popup Window Placement\r\n* Tree View\r\n* Keyboard Navigation\r\n* Quick Search\r\n* Auto-Complete\r\n* Match Highlighting\r\n* Multiple Databases\r\n\r\n## Quick Usage Example\r\n\r\n```csharp\r\nvoid OnMouseDown( MouseDownEvent evt )\r\n{\r\n    var items = new List<SearcherItem>\r\n    {\r\n        new SearcherItem( \"Books\", \"Description\", new List<SearcherItem>()\r\n        {\r\n            new SearcherItem( \"Dune\" ),\r\n        } )\r\n    };\r\n    items[0].AddChild( new SearcherItem( \"Ender's Game\" ) );\r\n\r\n    SearcherWindow.Show(\r\n        this, // this EditorWindow\r\n        items, \"Optional Title\",\r\n        item => { Debug.Log( item.name ); return /*close window?*/ true; },\r\n        evt.mousePosition );\r\n}\r\n```\r\n\r\n\r\n## Installing the Package\r\n\r\nOpen this file in your project:\r\n```\r\nPackages/manifest.json\r\n```\r\nAdd this to the ```dependencies``` array (makes sure to change the version string to your current version):\r\n```json\r\n\"com.unity.searcher\": \"4.0.0-preview\"\r\n```\r\nFor example, if this it he only package you depend on, you should have something like this (makes sure to change the version string to your current version):\r\n```json\r\n{\r\n    \"dependencies\": {\r\n        \"com.unity.searcher\": \"4.0.0-preview\"\r\n    }\r\n}\r\n```\r\n\r\n## Enabling the Samples and Tests\r\n\r\nRight now, it seems Samples and Tests only show for local packages, meaning you cloned this repo *inside* your **Packages** folder. Given you've done that, open this file in your project:\r\n```\r\nPackages/manifest.json\r\n```\r\nAdd a ```testables``` list with the package name so you get something like this (makes sure to change the version string to your current version):\r\n```json\r\n{\r\n    \"dependencies\": {\r\n        \"com.unity.searcher\": \"4.0.0-preview\"\r\n    },\r\n    \"testables\" : [ \"com.unity.searcher\" ]\r\n}\r\n```\r\nYou should see a new top-level menu called **Searcher** and you should see Searcher tests in **Test Runner**.\r\n\r\n### Searcher Creation from Database\r\n\r\n```csharp\r\nvar bookItems = new List<SearcherItem> { new SearcherItem( \"Books\" ) };\r\nvar foodItems = new List<SearcherItem> { new SearcherItem( \"Foods\" ) };\r\n\r\n// Create databases.\r\nvar databaseDir = Application.dataPath + \"/../Library/Searcher\";\r\nvar bookDatabase = SearcherDatabase.Create( bookItems, databaseDir + \"/Books\" );\r\nvar foodDatabase = SearcherDatabase.Create( foodItems, databaseDir + \"/Foods\" );\r\n\r\n// At a later time, load database from disk.\r\nbookDatabase = SearcherDatabase.Load( databaseDir + \"/Books\" );\r\n\r\nvar searcher = new Searcher(\r\n    new SearcherDatabase[]{ foodDatabase, bookDatabase },\r\n    \"Optional Title\" );\r\n```\r\n\r\n### Popup Window or Create Control\r\n\r\n```csharp\r\nSearcher m_Searcher;\r\n\r\nvoid OnMouseDown( MouseDownEvent evt ) { // Popup window...\r\n   SearcherWindow.Show( this, m_Searcher,\r\n       item => { Debug.Log( item.name ); return /*close window?*/ true; },\r\n       evt.mousePosition );\r\n}\r\n\r\n// ...or create SearcherControl VisualElement\r\nvoid OnEnable() { // ...or create SearcherControl VisualElement\r\n   var searcherControl = new SearcherControl();\r\n   searcherControl.Setup( m_Searcher, item => Debug.Log( item.name ) );\r\n   this.GetRootVisualContainer().Add( searcherControl );\r\n}\r\n```\r\n\r\n### Customize the UI via `ISearcherAdapter`\r\n\r\n```csharp\r\npublic interface ISearcherAdapter {\r\n   VisualElement MakeItem();\r\n   VisualElement Bind( VisualElement target, SearcherItem item,\r\n                       ItemExpanderState expanderState, string text );\r\n   string title { get; }\r\n   bool hasDetailsPanel { get; }\r\n   void DisplaySelectionDetails( VisualElement detailsPanel, SearcherItem o );\r\n   void DisplayNoSelectionDetails( VisualElement detailsPanel );\r\n   void InitDetailsPanel( VisualElement detailsPanel );\r\n}\r\n\r\nvar bookDatabase = SearcherDatabase.Load( Application.dataPath + \"/Books\" );\r\nvar myAdapter = new MyAdapter(); // class MyAdapter : ISearcherAdapter\r\nvar searcher = new Searcher( bookDatabase, myAdapter );\r\n\r\n```\r\n\r\n# Technical details\r\n## Requirements\r\n\r\nThis version of Searcher is compatible with the following versions of the Unity Editor:\r\n\r\n* 2019.1 and later (recommended)\r\n\r\n## Known limitations\r\n\r\nSearcher version 1.0 includes the following known limitations:\r\n\r\n* Only works with .Net 4.0\r\n\r\n## Package contents\r\n\r\nThe following table indicates the main folders of the package:\r\n\r\n|Location|Description|\r\n|---|---|\r\n|`Editor/Resources`|Contains images used in the UI.|\r\n|`Editor/Searcher`|Contains Searcher source files.|\r\n|`Samples`|Contains the samples.|\r\n|`Tests`|Contains the tests.|\r\n","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"_npmUser":{},"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.searcher.git","type":"git","revision":"798bfb84c8f09f7788a3a88c3c16d72c50451530"},"_npmVersion":"5.6.0","_nodeVersion":"8.17.0","readmeFilename":"README.md","name":"com.unity.searcher","version":"4.3.2","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"75c9c88746d4565eee4c9beab756703c004b0921","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.3.2.tgz"}},"4.7.0-preview":{"_id":"com.unity.searcher@4.7.0-preview","type":"asset","_from":"file:com.unity.searcher-4.7.0-preview.tgz","unity":"2019.1","upmCi":{"footprint":"961087986d2fd5883a5c1d0e48ff23c16a32a8de"},"readme":"# Searcher\r\n\r\nUse the Searcher package to quickly search a large list of items via a popup window. For example, use Searcher to find, select, and put down a new node in a graph. The Searcher package also includes samples and tests.\r\n\r\n## Features\r\n\r\n![GitHub Logo](/Documentation~/images/tree_view.png) ![GitHub Logo](/Documentation~/images/quick_search.png)\r\n* Popup Window Placement\r\n* Tree View\r\n* Keyboard Navigation\r\n* Quick Search\r\n* Auto-Complete\r\n* Match Highlighting\r\n* Multiple Databases\r\n\r\n## Quick Usage Example\r\n\r\n```csharp\r\nvoid OnMouseDown( MouseDownEvent evt )\r\n{\r\n    var items = new List<SearcherItem>\r\n    {\r\n        new SearcherItem( \"Books\", \"Description\", new List<SearcherItem>()\r\n        {\r\n            new SearcherItem( \"Dune\" ),\r\n        } )\r\n    };\r\n    items[0].AddChild( new SearcherItem( \"Ender's Game\" ) );\r\n\r\n    SearcherWindow.Show(\r\n        this, // this EditorWindow\r\n        items, \"Optional Title\",\r\n        item => { Debug.Log( item.name ); return /*close window?*/ true; },\r\n        evt.mousePosition );\r\n}\r\n```\r\n\r\n\r\n## Installing the Package\r\n\r\nOpen this file in your project:\r\n```\r\nPackages/manifest.json\r\n```\r\nAdd this to the ```dependencies``` array (makes sure to change the version string to your current version):\r\n```json\r\n\"com.unity.searcher\": \"4.0.0-preview\"\r\n```\r\nFor example, if this it he only package you depend on, you should have something like this (makes sure to change the version string to your current version):\r\n```json\r\n{\r\n    \"dependencies\": {\r\n        \"com.unity.searcher\": \"4.0.0-preview\"\r\n    }\r\n}\r\n```\r\n\r\n## Enabling the Samples and Tests\r\n\r\nRight now, it seems Samples and Tests only show for local packages, meaning you cloned this repo *inside* your **Packages** folder. Given you've done that, open this file in your project:\r\n```\r\nPackages/manifest.json\r\n```\r\nAdd a ```testables``` list with the package name so you get something like this (makes sure to change the version string to your current version):\r\n```json\r\n{\r\n    \"dependencies\": {\r\n        \"com.unity.searcher\": \"4.0.0-preview\"\r\n    },\r\n    \"testables\" : [ \"com.unity.searcher\" ]\r\n}\r\n```\r\nYou should see a new top-level menu called **Searcher** and you should see Searcher tests in **Test Runner**.\r\n\r\n### Searcher Creation from Database\r\n\r\n```csharp\r\nvar bookItems = new List<SearcherItem> { new SearcherItem( \"Books\" ) };\r\nvar foodItems = new List<SearcherItem> { new SearcherItem( \"Foods\" ) };\r\n\r\n// Create databases.\r\nvar databaseDir = Application.dataPath + \"/../Library/Searcher\";\r\nvar bookDatabase = SearcherDatabase.Create( bookItems, databaseDir + \"/Books\" );\r\nvar foodDatabase = SearcherDatabase.Create( foodItems, databaseDir + \"/Foods\" );\r\n\r\n// At a later time, load database from disk.\r\nbookDatabase = SearcherDatabase.Load( databaseDir + \"/Books\" );\r\n\r\nvar searcher = new Searcher(\r\n    new SearcherDatabase[]{ foodDatabase, bookDatabase },\r\n    \"Optional Title\" );\r\n```\r\n\r\n### Popup Window or Create Control\r\n\r\n```csharp\r\nSearcher m_Searcher;\r\n\r\nvoid OnMouseDown( MouseDownEvent evt ) { // Popup window...\r\n   SearcherWindow.Show( this, m_Searcher,\r\n       item => { Debug.Log( item.name ); return /*close window?*/ true; },\r\n       evt.mousePosition );\r\n}\r\n\r\n// ...or create SearcherControl VisualElement\r\nvoid OnEnable() { // ...or create SearcherControl VisualElement\r\n   var searcherControl = new SearcherControl();\r\n   searcherControl.Setup( m_Searcher, item => Debug.Log( item.name ) );\r\n   this.GetRootVisualContainer().Add( searcherControl );\r\n}\r\n```\r\n\r\n### Customize the UI via `ISearcherAdapter`\r\n\r\n```csharp\r\npublic interface ISearcherAdapter {\r\n   VisualElement MakeItem();\r\n   VisualElement Bind( VisualElement target, SearcherItem item,\r\n                       ItemExpanderState expanderState, string text );\r\n   string title { get; }\r\n   bool hasDetailsPanel { get; }\r\n   void DisplaySelectionDetails( VisualElement detailsPanel, SearcherItem o );\r\n   void DisplayNoSelectionDetails( VisualElement detailsPanel );\r\n   void InitDetailsPanel( VisualElement detailsPanel );\r\n}\r\n\r\nvar bookDatabase = SearcherDatabase.Load( Application.dataPath + \"/Books\" );\r\nvar myAdapter = new MyAdapter(); // class MyAdapter : ISearcherAdapter\r\nvar searcher = new Searcher( bookDatabase, myAdapter );\r\n\r\n```\r\n\r\n# Technical details\r\n## Requirements\r\n\r\nThis version of Searcher is compatible with the following versions of the Unity Editor:\r\n\r\n* 2019.1 and later (recommended)\r\n\r\n## Known limitations\r\n\r\nSearcher version 1.0 includes the following known limitations:\r\n\r\n* Only works with .Net 4.0\r\n\r\n## Package contents\r\n\r\nThe following table indicates the main folders of the package:\r\n\r\n|Location|Description|\r\n|---|---|\r\n|`Editor/Resources`|Contains images used in the UI.|\r\n|`Editor/Searcher`|Contains Searcher source files.|\r\n|`Samples`|Contains the samples.|\r\n|`Tests`|Contains the tests.|\r\n","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"_resolved":"","_integrity":"","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.searcher.git","type":"git","revision":"f81d118a10b04cfb8a45e8577fef2ea367d0ef48"},"_npmVersion":"6.13.4","_nodeVersion":"12.16.1","readmeFilename":"README.md","name":"com.unity.searcher","version":"4.7.0-preview","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"98adb630359c3a5f1816f61abe2e00104b19c794","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.7.0-preview.tgz"}},"4.6.0-preview":{"_id":"com.unity.searcher@4.6.0-preview","type":"asset","_from":"file:com.unity.searcher-4.6.0-preview.tgz","unity":"2019.1","upmCi":{"footprint":"c4ffb24c829f715e6d23147acf46a390a3d7b95c"},"readme":"# Searcher\r\n\r\nUse the Searcher package to quickly search a large list of items via a popup window. For example, use Searcher to find, select, and put down a new node in a graph. The Searcher package also includes samples and tests.\r\n\r\n## Features\r\n\r\n![GitHub Logo](/Documentation~/images/tree_view.png) ![GitHub Logo](/Documentation~/images/quick_search.png)\r\n* Popup Window Placement\r\n* Tree View\r\n* Keyboard Navigation\r\n* Quick Search\r\n* Auto-Complete\r\n* Match Highlighting\r\n* Multiple Databases\r\n\r\n## Quick Usage Example\r\n\r\n```csharp\r\nvoid OnMouseDown( MouseDownEvent evt )\r\n{\r\n    var items = new List<SearcherItem>\r\n    {\r\n        new SearcherItem( \"Books\", \"Description\", new List<SearcherItem>()\r\n        {\r\n            new SearcherItem( \"Dune\" ),\r\n        } )\r\n    };\r\n    items[0].AddChild( new SearcherItem( \"Ender's Game\" ) );\r\n\r\n    SearcherWindow.Show(\r\n        this, // this EditorWindow\r\n        items, \"Optional Title\",\r\n        item => { Debug.Log( item.name ); return /*close window?*/ true; },\r\n        evt.mousePosition );\r\n}\r\n```\r\n\r\n\r\n## Installing the Package\r\n\r\nOpen this file in your project:\r\n```\r\nPackages/manifest.json\r\n```\r\nAdd this to the ```dependencies``` array (makes sure to change the version string to your current version):\r\n```json\r\n\"com.unity.searcher\": \"4.0.0-preview\"\r\n```\r\nFor example, if this it he only package you depend on, you should have something like this (makes sure to change the version string to your current version):\r\n```json\r\n{\r\n    \"dependencies\": {\r\n        \"com.unity.searcher\": \"4.0.0-preview\"\r\n    }\r\n}\r\n```\r\n\r\n## Enabling the Samples and Tests\r\n\r\nRight now, it seems Samples and Tests only show for local packages, meaning you cloned this repo *inside* your **Packages** folder. Given you've done that, open this file in your project:\r\n```\r\nPackages/manifest.json\r\n```\r\nAdd a ```testables``` list with the package name so you get something like this (makes sure to change the version string to your current version):\r\n```json\r\n{\r\n    \"dependencies\": {\r\n        \"com.unity.searcher\": \"4.0.0-preview\"\r\n    },\r\n    \"testables\" : [ \"com.unity.searcher\" ]\r\n}\r\n```\r\nYou should see a new top-level menu called **Searcher** and you should see Searcher tests in **Test Runner**.\r\n\r\n### Searcher Creation from Database\r\n\r\n```csharp\r\nvar bookItems = new List<SearcherItem> { new SearcherItem( \"Books\" ) };\r\nvar foodItems = new List<SearcherItem> { new SearcherItem( \"Foods\" ) };\r\n\r\n// Create databases.\r\nvar databaseDir = Application.dataPath + \"/../Library/Searcher\";\r\nvar bookDatabase = SearcherDatabase.Create( bookItems, databaseDir + \"/Books\" );\r\nvar foodDatabase = SearcherDatabase.Create( foodItems, databaseDir + \"/Foods\" );\r\n\r\n// At a later time, load database from disk.\r\nbookDatabase = SearcherDatabase.Load( databaseDir + \"/Books\" );\r\n\r\nvar searcher = new Searcher(\r\n    new SearcherDatabase[]{ foodDatabase, bookDatabase },\r\n    \"Optional Title\" );\r\n```\r\n\r\n### Popup Window or Create Control\r\n\r\n```csharp\r\nSearcher m_Searcher;\r\n\r\nvoid OnMouseDown( MouseDownEvent evt ) { // Popup window...\r\n   SearcherWindow.Show( this, m_Searcher,\r\n       item => { Debug.Log( item.name ); return /*close window?*/ true; },\r\n       evt.mousePosition );\r\n}\r\n\r\n// ...or create SearcherControl VisualElement\r\nvoid OnEnable() { // ...or create SearcherControl VisualElement\r\n   var searcherControl = new SearcherControl();\r\n   searcherControl.Setup( m_Searcher, item => Debug.Log( item.name ) );\r\n   this.GetRootVisualContainer().Add( searcherControl );\r\n}\r\n```\r\n\r\n### Customize the UI via `ISearcherAdapter`\r\n\r\n```csharp\r\npublic interface ISearcherAdapter {\r\n   VisualElement MakeItem();\r\n   VisualElement Bind( VisualElement target, SearcherItem item,\r\n                       ItemExpanderState expanderState, string text );\r\n   string title { get; }\r\n   bool hasDetailsPanel { get; }\r\n   void DisplaySelectionDetails( VisualElement detailsPanel, SearcherItem o );\r\n   void DisplayNoSelectionDetails( VisualElement detailsPanel );\r\n   void InitDetailsPanel( VisualElement detailsPanel );\r\n}\r\n\r\nvar bookDatabase = SearcherDatabase.Load( Application.dataPath + \"/Books\" );\r\nvar myAdapter = new MyAdapter(); // class MyAdapter : ISearcherAdapter\r\nvar searcher = new Searcher( bookDatabase, myAdapter );\r\n\r\n```\r\n\r\n# Technical details\r\n## Requirements\r\n\r\nThis version of Searcher is compatible with the following versions of the Unity Editor:\r\n\r\n* 2019.1 and later (recommended)\r\n\r\n## Known limitations\r\n\r\nSearcher version 1.0 includes the following known limitations:\r\n\r\n* Only works with .Net 4.0\r\n\r\n## Package contents\r\n\r\nThe following table indicates the main folders of the package:\r\n\r\n|Location|Description|\r\n|---|---|\r\n|`Editor/Resources`|Contains images used in the UI.|\r\n|`Editor/Searcher`|Contains Searcher source files.|\r\n|`Samples`|Contains the samples.|\r\n|`Tests`|Contains the tests.|\r\n","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"_resolved":"","_integrity":"","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.searcher.git","type":"git","revision":"5480cfbe92acf1b6b36bfe0d38a71591cef222dc"},"_npmVersion":"6.13.4","_nodeVersion":"12.16.1","readmeFilename":"README.md","name":"com.unity.searcher","version":"4.6.0-preview","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"12522a4e6ea41042f1773e7d353f0471f2337f67","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.6.0-preview.tgz"}},"4.3.1":{"_id":"com.unity.searcher@4.3.1","type":"asset","unity":"2019.1","upmCi":{"footprint":"e8fa0a6cb19c5b22f76555eeb46b578d1db540bf"},"readme":"# Searcher\r\n\r\nUse the Searcher package to quickly search a large list of items via a popup window. For example, use Searcher to find, select, and put down a new node in a graph. The Searcher package also includes samples and tests.\r\n\r\n## Features\r\n\r\n![GitHub Logo](/Documentation~/images/tree_view.png) ![GitHub Logo](/Documentation~/images/quick_search.png)\r\n* Popup Window Placement\r\n* Tree View\r\n* Keyboard Navigation\r\n* Quick Search\r\n* Auto-Complete\r\n* Match Highlighting\r\n* Multiple Databases\r\n\r\n## Quick Usage Example\r\n\r\n```csharp\r\nvoid OnMouseDown( MouseDownEvent evt )\r\n{\r\n    var items = new List<SearcherItem>\r\n    {\r\n        new SearcherItem( \"Books\", \"Description\", new List<SearcherItem>()\r\n        {\r\n            new SearcherItem( \"Dune\" ),\r\n        } )\r\n    };\r\n    items[0].AddChild( new SearcherItem( \"Ender's Game\" ) );\r\n\r\n    SearcherWindow.Show(\r\n        this, // this EditorWindow\r\n        items, \"Optional Title\",\r\n        item => { Debug.Log( item.name ); return /*close window?*/ true; },\r\n        evt.mousePosition );\r\n}\r\n```\r\n\r\n\r\n## Installing the Package\r\n\r\nOpen this file in your project:\r\n```\r\nPackages/manifest.json\r\n```\r\nAdd this to the ```dependencies``` array (makes sure to change the version string to your current version):\r\n```json\r\n\"com.unity.searcher\": \"4.0.0-preview\"\r\n```\r\nFor example, if this it he only package you depend on, you should have something like this (makes sure to change the version string to your current version):\r\n```json\r\n{\r\n    \"dependencies\": {\r\n        \"com.unity.searcher\": \"4.0.0-preview\"\r\n    }\r\n}\r\n```\r\n\r\n## Enabling the Samples and Tests\r\n\r\nRight now, it seems Samples and Tests only show for local packages, meaning you cloned this repo *inside* your **Packages** folder. Given you've done that, open this file in your project:\r\n```\r\nPackages/manifest.json\r\n```\r\nAdd a ```testables``` list with the package name so you get something like this (makes sure to change the version string to your current version):\r\n```json\r\n{\r\n    \"dependencies\": {\r\n        \"com.unity.searcher\": \"4.0.0-preview\"\r\n    },\r\n    \"testables\" : [ \"com.unity.searcher\" ]\r\n}\r\n```\r\nYou should see a new top-level menu called **Searcher** and you should see Searcher tests in **Test Runner**.\r\n\r\n### Searcher Creation from Database\r\n\r\n```csharp\r\nvar bookItems = new List<SearcherItem> { new SearcherItem( \"Books\" ) };\r\nvar foodItems = new List<SearcherItem> { new SearcherItem( \"Foods\" ) };\r\n\r\n// Create databases.\r\nvar databaseDir = Application.dataPath + \"/../Library/Searcher\";\r\nvar bookDatabase = SearcherDatabase.Create( bookItems, databaseDir + \"/Books\" );\r\nvar foodDatabase = SearcherDatabase.Create( foodItems, databaseDir + \"/Foods\" );\r\n\r\n// At a later time, load database from disk.\r\nbookDatabase = SearcherDatabase.Load( databaseDir + \"/Books\" );\r\n\r\nvar searcher = new Searcher(\r\n    new SearcherDatabase[]{ foodDatabase, bookDatabase },\r\n    \"Optional Title\" );\r\n```\r\n\r\n### Popup Window or Create Control\r\n\r\n```csharp\r\nSearcher m_Searcher;\r\n\r\nvoid OnMouseDown( MouseDownEvent evt ) { // Popup window...\r\n   SearcherWindow.Show( this, m_Searcher,\r\n       item => { Debug.Log( item.name ); return /*close window?*/ true; },\r\n       evt.mousePosition );\r\n}\r\n\r\n// ...or create SearcherControl VisualElement\r\nvoid OnEnable() { // ...or create SearcherControl VisualElement\r\n   var searcherControl = new SearcherControl();\r\n   searcherControl.Setup( m_Searcher, item => Debug.Log( item.name ) );\r\n   this.GetRootVisualContainer().Add( searcherControl );\r\n}\r\n```\r\n\r\n### Customize the UI via `ISearcherAdapter`\r\n\r\n```csharp\r\npublic interface ISearcherAdapter {\r\n   VisualElement MakeItem();\r\n   VisualElement Bind( VisualElement target, SearcherItem item,\r\n                       ItemExpanderState expanderState, string text );\r\n   string title { get; }\r\n   bool hasDetailsPanel { get; }\r\n   void DisplaySelectionDetails( VisualElement detailsPanel, SearcherItem o );\r\n   void DisplayNoSelectionDetails( VisualElement detailsPanel );\r\n   void InitDetailsPanel( VisualElement detailsPanel );\r\n}\r\n\r\nvar bookDatabase = SearcherDatabase.Load( Application.dataPath + \"/Books\" );\r\nvar myAdapter = new MyAdapter(); // class MyAdapter : ISearcherAdapter\r\nvar searcher = new Searcher( bookDatabase, myAdapter );\r\n\r\n```\r\n\r\n# Technical details\r\n## Requirements\r\n\r\nThis version of Searcher is compatible with the following versions of the Unity Editor:\r\n\r\n* 2019.1 and later (recommended)\r\n\r\n## Known limitations\r\n\r\nSearcher version 1.0 includes the following known limitations:\r\n\r\n* Only works with .Net 4.0\r\n\r\n## Package contents\r\n\r\nThe following table indicates the main folders of the package:\r\n\r\n|Location|Description|\r\n|---|---|\r\n|`Editor/Resources`|Contains images used in the UI.|\r\n|`Editor/Searcher`|Contains Searcher source files.|\r\n|`Samples`|Contains the samples.|\r\n|`Tests`|Contains the tests.|\r\n","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"_npmUser":{},"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.searcher.git","type":"git","revision":"56c3321cb776740e60e242e6c72cb5b4e8245256"},"_npmVersion":"5.6.0","_nodeVersion":"8.11.1","readmeFilename":"README.md","name":"com.unity.searcher","version":"4.3.1","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"80d8057046a55d582181646eb300eef3c1b4d054","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.3.1.tgz"}},"4.3.0":{"_id":"com.unity.searcher@4.3.0","type":"asset","unity":"2019.1","upmCi":{"footprint":"b9142cc100ab102ec47e81b8f4764595a406b763"},"readme":"# Searcher\r\n\r\nUse the Searcher package to quickly search a large list of items via a popup window. For example, use Searcher to find, select, and put down a new node in a graph. The Searcher package also includes samples and tests.\r\n\r\n## Features\r\n\r\n![GitHub Logo](/Documentation~/images/tree_view.png) ![GitHub Logo](/Documentation~/images/quick_search.png)\r\n* Popup Window Placement\r\n* Tree View\r\n* Keyboard Navigation\r\n* Quick Search\r\n* Auto-Complete\r\n* Match Highlighting\r\n* Multiple Databases\r\n\r\n## Quick Usage Example\r\n\r\n```csharp\r\nvoid OnMouseDown( MouseDownEvent evt )\r\n{\r\n    var items = new List<SearcherItem>\r\n    {\r\n        new SearcherItem( \"Books\", \"Description\", new List<SearcherItem>()\r\n        {\r\n            new SearcherItem( \"Dune\" ),\r\n        } )\r\n    };\r\n    items[0].AddChild( new SearcherItem( \"Ender's Game\" ) );\r\n\r\n    SearcherWindow.Show(\r\n        this, // this EditorWindow\r\n        items, \"Optional Title\",\r\n        item => { Debug.Log( item.name ); return /*close window?*/ true; },\r\n        evt.mousePosition );\r\n}\r\n```\r\n\r\n\r\n## Installing the Package\r\n\r\nOpen this file in your project:\r\n```\r\nPackages/manifest.json\r\n```\r\nAdd this to the ```dependencies``` array (makes sure to change the version string to your current version):\r\n```json\r\n\"com.unity.searcher\": \"4.0.0-preview\"\r\n```\r\nFor example, if this it he only package you depend on, you should have something like this (makes sure to change the version string to your current version):\r\n```json\r\n{\r\n    \"dependencies\": {\r\n        \"com.unity.searcher\": \"4.0.0-preview\"\r\n    }\r\n}\r\n```\r\n\r\n## Enabling the Samples and Tests\r\n\r\nRight now, it seems Samples and Tests only show for local packages, meaning you cloned this repo *inside* your **Packages** folder. Given you've done that, open this file in your project:\r\n```\r\nPackages/manifest.json\r\n```\r\nAdd a ```testables``` list with the package name so you get something like this (makes sure to change the version string to your current version):\r\n```json\r\n{\r\n    \"dependencies\": {\r\n        \"com.unity.searcher\": \"4.0.0-preview\"\r\n    },\r\n    \"testables\" : [ \"com.unity.searcher\" ]\r\n}\r\n```\r\nYou should see a new top-level menu called **Searcher** and you should see Searcher tests in **Test Runner**.\r\n\r\n### Searcher Creation from Database\r\n\r\n```csharp\r\nvar bookItems = new List<SearcherItem> { new SearcherItem( \"Books\" ) };\r\nvar foodItems = new List<SearcherItem> { new SearcherItem( \"Foods\" ) };\r\n\r\n// Create databases.\r\nvar databaseDir = Application.dataPath + \"/../Library/Searcher\";\r\nvar bookDatabase = SearcherDatabase.Create( bookItems, databaseDir + \"/Books\" );\r\nvar foodDatabase = SearcherDatabase.Create( foodItems, databaseDir + \"/Foods\" );\r\n\r\n// At a later time, load database from disk.\r\nbookDatabase = SearcherDatabase.Load( databaseDir + \"/Books\" );\r\n\r\nvar searcher = new Searcher(\r\n    new SearcherDatabase[]{ foodDatabase, bookDatabase },\r\n    \"Optional Title\" );\r\n```\r\n\r\n### Popup Window or Create Control\r\n\r\n```csharp\r\nSearcher m_Searcher;\r\n\r\nvoid OnMouseDown( MouseDownEvent evt ) { // Popup window...\r\n   SearcherWindow.Show( this, m_Searcher,\r\n       item => { Debug.Log( item.name ); return /*close window?*/ true; },\r\n       evt.mousePosition );\r\n}\r\n\r\n// ...or create SearcherControl VisualElement\r\nvoid OnEnable() { // ...or create SearcherControl VisualElement\r\n   var searcherControl = new SearcherControl();\r\n   searcherControl.Setup( m_Searcher, item => Debug.Log( item.name ) );\r\n   this.GetRootVisualContainer().Add( searcherControl );\r\n}\r\n```\r\n\r\n### Customize the UI via `ISearcherAdapter`\r\n\r\n```csharp\r\npublic interface ISearcherAdapter {\r\n   VisualElement MakeItem();\r\n   VisualElement Bind( VisualElement target, SearcherItem item,\r\n                       ItemExpanderState expanderState, string text );\r\n   string title { get; }\r\n   bool hasDetailsPanel { get; }\r\n   void DisplaySelectionDetails( VisualElement detailsPanel, SearcherItem o );\r\n   void DisplayNoSelectionDetails( VisualElement detailsPanel );\r\n   void InitDetailsPanel( VisualElement detailsPanel );\r\n}\r\n\r\nvar bookDatabase = SearcherDatabase.Load( Application.dataPath + \"/Books\" );\r\nvar myAdapter = new MyAdapter(); // class MyAdapter : ISearcherAdapter\r\nvar searcher = new Searcher( bookDatabase, myAdapter );\r\n\r\n```\r\n\r\n# Technical details\r\n## Requirements\r\n\r\nThis version of Searcher is compatible with the following versions of the Unity Editor:\r\n\r\n* 2019.1 and later (recommended)\r\n\r\n## Known limitations\r\n\r\nSearcher version 1.0 includes the following known limitations:\r\n\r\n* Only works with .Net 4.0\r\n\r\n## Package contents\r\n\r\nThe following table indicates the main folders of the package:\r\n\r\n|Location|Description|\r\n|---|---|\r\n|`Editor/Resources`|Contains images used in the UI.|\r\n|`Editor/Searcher`|Contains Searcher source files.|\r\n|`Samples`|Contains the samples.|\r\n|`Tests`|Contains the tests.|\r\n","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"_npmUser":{},"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.searcher.git","type":"git","revision":"50bad972ef5d32cc084fcfd9a0d409c7a098f737"},"_npmVersion":"5.6.0","_nodeVersion":"8.11.1","readmeFilename":"README.md","name":"com.unity.searcher","version":"4.3.0","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"8b6db2f687e8c8ed7955ba9dee339792245cd6a6","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.3.0.tgz"}},"4.2.0":{"_id":"com.unity.searcher@4.2.0","type":"asset","_from":"../../../var/folders/tn/t8btbstx12l33r08ww_2c0_1_q91g9/T/com.unity.searcher-4.2.0.tgz","unity":"2019.1","upmCi":{"footprint":"e4a2e17b4939a7a20302b0cb52bacc3f90b290d5"},"readme":"# Searcher\r\n\r\nUse the Searcher package to quickly search a large list of items via a popup window. For example, use Searcher to find, select, and put down a new node in a graph. The Searcher package also includes samples and tests.\r\n\r\n## Features\r\n\r\n![GitHub Logo](/Documentation~/images/tree_view.png) ![GitHub Logo](/Documentation~/images/quick_search.png)\r\n* Popup Window Placement\r\n* Tree View\r\n* Keyboard Navigation\r\n* Quick Search\r\n* Auto-Complete\r\n* Match Highlighting\r\n* Multiple Databases\r\n\r\n## Quick Usage Example\r\n\r\n```csharp\r\nvoid OnMouseDown( MouseDownEvent evt )\r\n{\r\n    var items = new List<SearcherItem>\r\n    {\r\n        new SearcherItem( \"Books\", \"Description\", new List<SearcherItem>()\r\n        {\r\n            new SearcherItem( \"Dune\" ),\r\n        } )\r\n    };\r\n    items[0].AddChild( new SearcherItem( \"Ender's Game\" ) );\r\n\r\n    SearcherWindow.Show(\r\n        this, // this EditorWindow\r\n        items, \"Optional Title\",\r\n        item => { Debug.Log( item.name ); return /*close window?*/ true; },\r\n        evt.mousePosition );\r\n}\r\n```\r\n\r\n\r\n## Installing the Package\r\n\r\nOpen this file in your project:\r\n```\r\nPackages/manifest.json\r\n```\r\nAdd this to the ```dependencies``` array (makes sure to change the version string to your current version):\r\n```json\r\n\"com.unity.searcher\": \"4.0.0-preview\"\r\n```\r\nFor example, if this it he only package you depend on, you should have something like this (makes sure to change the version string to your current version):\r\n```json\r\n{\r\n    \"dependencies\": {\r\n        \"com.unity.searcher\": \"4.0.0-preview\"\r\n    }\r\n}\r\n```\r\n\r\n## Enabling the Samples and Tests\r\n\r\nRight now, it seems Samples and Tests only show for local packages, meaning you cloned this repo *inside* your **Packages** folder. Given you've done that, open this file in your project:\r\n```\r\nPackages/manifest.json\r\n```\r\nAdd a ```testables``` list with the package name so you get something like this (makes sure to change the version string to your current version):\r\n```json\r\n{\r\n    \"dependencies\": {\r\n        \"com.unity.searcher\": \"4.0.0-preview\"\r\n    },\r\n    \"testables\" : [ \"com.unity.searcher\" ]\r\n}\r\n```\r\nYou should see a new top-level menu called **Searcher** and you should see Searcher tests in **Test Runner**.\r\n\r\n### Searcher Creation from Database\r\n\r\n```csharp\r\nvar bookItems = new List<SearcherItem> { new SearcherItem( \"Books\" ) };\r\nvar foodItems = new List<SearcherItem> { new SearcherItem( \"Foods\" ) };\r\n\r\n// Create databases.\r\nvar databaseDir = Application.dataPath + \"/../Library/Searcher\";\r\nvar bookDatabase = SearcherDatabase.Create( bookItems, databaseDir + \"/Books\" );\r\nvar foodDatabase = SearcherDatabase.Create( foodItems, databaseDir + \"/Foods\" );\r\n\r\n// At a later time, load database from disk.\r\nbookDatabase = SearcherDatabase.Load( databaseDir + \"/Books\" );\r\n\r\nvar searcher = new Searcher(\r\n    new SearcherDatabase[]{ foodDatabase, bookDatabase },\r\n    \"Optional Title\" );\r\n```\r\n\r\n### Popup Window or Create Control\r\n\r\n```csharp\r\nSearcher m_Searcher;\r\n\r\nvoid OnMouseDown( MouseDownEvent evt ) { // Popup window...\r\n   SearcherWindow.Show( this, m_Searcher,\r\n       item => { Debug.Log( item.name ); return /*close window?*/ true; },\r\n       evt.mousePosition );\r\n}\r\n\r\n// ...or create SearcherControl VisualElement\r\nvoid OnEnable() { // ...or create SearcherControl VisualElement\r\n   var searcherControl = new SearcherControl();\r\n   searcherControl.Setup( m_Searcher, item => Debug.Log( item.name ) );\r\n   this.GetRootVisualContainer().Add( searcherControl );\r\n}\r\n```\r\n\r\n### Customize the UI via `ISearcherAdapter`\r\n\r\n```csharp\r\npublic interface ISearcherAdapter {\r\n   VisualElement MakeItem();\r\n   VisualElement Bind( VisualElement target, SearcherItem item,\r\n                       ItemExpanderState expanderState, string text );\r\n   string title { get; }\r\n   bool hasDetailsPanel { get; }\r\n   void DisplaySelectionDetails( VisualElement detailsPanel, SearcherItem o );\r\n   void DisplayNoSelectionDetails( VisualElement detailsPanel );\r\n   void InitDetailsPanel( VisualElement detailsPanel );\r\n}\r\n\r\nvar bookDatabase = SearcherDatabase.Load( Application.dataPath + \"/Books\" );\r\nvar myAdapter = new MyAdapter(); // class MyAdapter : ISearcherAdapter\r\nvar searcher = new Searcher( bookDatabase, myAdapter );\r\n\r\n```\r\n\r\n# Technical details\r\n## Requirements\r\n\r\nThis version of Searcher is compatible with the following versions of the Unity Editor:\r\n\r\n* 2019.1 and later (recommended)\r\n\r\n## Known limitations\r\n\r\nSearcher version 1.0 includes the following known limitations:\r\n\r\n* Only works with .Net 4.0\r\n\r\n## Package contents\r\n\r\nThe following table indicates the main folders of the package:\r\n\r\n|Location|Description|\r\n|---|---|\r\n|`Editor/Resources`|Contains images used in the UI.|\r\n|`Editor/Searcher`|Contains Searcher source files.|\r\n|`Samples`|Contains the samples.|\r\n|`Tests`|Contains the tests.|\r\n","_shasum":"cd0beee40a47dc7d8040f4231fc3f06153951ad5","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"scripts":{},"_npmUser":{},"_resolved":"file:../../../var/folders/tn/t8btbstx12l33r08ww_2c0_1_q91g9/T/com.unity.searcher-4.2.0.tgz","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.searcher.git","type":"git","revision":"921c2487a824d2a1fe3300ceba1acb87ab91a9d7"},"_npmVersion":"3.10.10","_nodeVersion":"6.10.0","readmeFilename":"README.md","name":"com.unity.searcher","version":"4.2.0","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"cd0beee40a47dc7d8040f4231fc3f06153951ad5","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.2.0.tgz"}},"4.1.0":{"_id":"com.unity.searcher@4.1.0","type":"asset","_from":"../../../var/folders/tn/t8btbstx12l33r08ww_2c0_1_q91g9/T/com.unity.searcher-4.1.0.tgz","unity":"2019.1","readme":"# Searcher\r\n\r\nUse the Searcher package to quickly search a large list of items via a popup window. For example, use Searcher to find, select, and put down a new node in a graph. The Searcher package also includes samples and tests.\r\n\r\n## Features\r\n\r\n![GitHub Logo](/Documentation~/images/tree_view.png) ![GitHub Logo](/Documentation~/images/quick_search.png)\r\n* Popup Window Placement\r\n* Tree View\r\n* Keyboard Navigation\r\n* Quick Search\r\n* Auto-Complete\r\n* Match Highlighting\r\n* Multiple Databases\r\n\r\n## Quick Usage Example\r\n\r\n```csharp\r\nvoid OnMouseDown( MouseDownEvent evt )\r\n{\r\n    var items = new List<SearcherItem>\r\n    {\r\n        new SearcherItem( \"Books\", \"Description\", new List<SearcherItem>()\r\n        {\r\n            new SearcherItem( \"Dune\" ),\r\n        } )\r\n    };\r\n    items[0].AddChild( new SearcherItem( \"Ender's Game\" ) );\r\n\r\n    SearcherWindow.Show(\r\n        this, // this EditorWindow\r\n        items, \"Optional Title\",\r\n        item => { Debug.Log( item.name ); return /*close window?*/ true; },\r\n        evt.mousePosition );\r\n}\r\n```\r\n\r\n\r\n## Installing the Package\r\n\r\nOpen this file in your project:\r\n```\r\nPackages/manifest.json\r\n```\r\nAdd this to the ```dependencies``` array (makes sure to change the version string to your current version):\r\n```json\r\n\"com.unity.searcher\": \"4.0.0-preview\"\r\n```\r\nFor example, if this it he only package you depend on, you should have something like this (makes sure to change the version string to your current version):\r\n```json\r\n{\r\n    \"dependencies\": {\r\n        \"com.unity.searcher\": \"4.0.0-preview\"\r\n    }\r\n}\r\n```\r\n\r\n## Enabling the Samples and Tests\r\n\r\nRight now, it seems Samples and Tests only show for local packages, meaning you cloned this repo *inside* your **Packages** folder. Given you've done that, open this file in your project:\r\n```\r\nPackages/manifest.json\r\n```\r\nAdd a ```testables``` list with the package name so you get something like this (makes sure to change the version string to your current version):\r\n```json\r\n{\r\n    \"dependencies\": {\r\n        \"com.unity.searcher\": \"4.0.0-preview\"\r\n    },\r\n    \"testables\" : [ \"com.unity.searcher\" ]\r\n}\r\n```\r\nYou should see a new top-level menu called **Searcher** and you should see Searcher tests in **Test Runner**.\r\n\r\n### Searcher Creation from Database\r\n\r\n```csharp\r\nvar bookItems = new List<SearcherItem> { new SearcherItem( \"Books\" ) };\r\nvar foodItems = new List<SearcherItem> { new SearcherItem( \"Foods\" ) };\r\n\r\n// Create databases.\r\nvar databaseDir = Application.dataPath + \"/../Library/Searcher\";\r\nvar bookDatabase = SearcherDatabase.Create( bookItems, databaseDir + \"/Books\" );\r\nvar foodDatabase = SearcherDatabase.Create( foodItems, databaseDir + \"/Foods\" );\r\n\r\n// At a later time, load database from disk.\r\nbookDatabase = SearcherDatabase.Load( databaseDir + \"/Books\" );\r\n\r\nvar searcher = new Searcher(\r\n    new SearcherDatabase[]{ foodDatabase, bookDatabase },\r\n    \"Optional Title\" );\r\n```\r\n\r\n### Popup Window or Create Control\r\n\r\n```csharp\r\nSearcher m_Searcher;\r\n\r\nvoid OnMouseDown( MouseDownEvent evt ) { // Popup window...\r\n   SearcherWindow.Show( this, m_Searcher,\r\n       item => { Debug.Log( item.name ); return /*close window?*/ true; },\r\n       evt.mousePosition );\r\n}\r\n\r\n// ...or create SearcherControl VisualElement\r\nvoid OnEnable() { // ...or create SearcherControl VisualElement\r\n   var searcherControl = new SearcherControl();\r\n   searcherControl.Setup( m_Searcher, item => Debug.Log( item.name ) );\r\n   this.GetRootVisualContainer().Add( searcherControl );\r\n}\r\n```\r\n\r\n### Customize the UI via `ISearcherAdapter`\r\n\r\n```csharp\r\npublic interface ISearcherAdapter {\r\n   VisualElement MakeItem();\r\n   VisualElement Bind( VisualElement target, SearcherItem item,\r\n                       ItemExpanderState expanderState, string text );\r\n   string title { get; }\r\n   bool hasDetailsPanel { get; }\r\n   void DisplaySelectionDetails( VisualElement detailsPanel, SearcherItem o );\r\n   void DisplayNoSelectionDetails( VisualElement detailsPanel );\r\n   void InitDetailsPanel( VisualElement detailsPanel );\r\n}\r\n\r\nvar bookDatabase = SearcherDatabase.Load( Application.dataPath + \"/Books\" );\r\nvar myAdapter = new MyAdapter(); // class MyAdapter : ISearcherAdapter\r\nvar searcher = new Searcher( bookDatabase, myAdapter );\r\n\r\n```\r\n\r\n# Technical details\r\n## Requirements\r\n\r\nThis version of Searcher is compatible with the following versions of the Unity Editor:\r\n\r\n* 2019.1 and later (recommended)\r\n\r\n## Known limitations\r\n\r\nSearcher version 1.0 includes the following known limitations:\r\n\r\n* Only works with .Net 4.0\r\n\r\n## Package contents\r\n\r\nThe following table indicates the main folders of the package:\r\n\r\n|Location|Description|\r\n|---|---|\r\n|`Editor/Resources`|Contains images used in the UI.|\r\n|`Editor/Searcher`|Contains Searcher source files.|\r\n|`Samples`|Contains the samples.|\r\n|`Tests`|Contains the tests.|\r\n","_shasum":"ced2749f6809907d3d7b510865502ec7fdc53ef3","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"scripts":{},"_npmUser":{},"_resolved":"file:../../../var/folders/tn/t8btbstx12l33r08ww_2c0_1_q91g9/T/com.unity.searcher-4.1.0.tgz","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.searcher.git","type":"git","revision":"888c97d85a140ffedfc7f88d9433598912d2ddfc","footprint":"9b4e4a5e121c5c5ace6049fa4e6422cf4baedbd8"},"_npmVersion":"3.10.10","_nodeVersion":"6.10.0","readmeFilename":"README.md","name":"com.unity.searcher","version":"4.1.0","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"ced2749f6809907d3d7b510865502ec7fdc53ef3","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.1.0.tgz"}},"4.1.0-preview":{"_id":"com.unity.searcher@4.1.0-preview","type":"asset","_from":"file:com.unity.searcher-4.1.0-preview.tgz","unity":"2019.1","readme":"# Searcher\r\n\r\nUse the Searcher package to quickly search a large list of items via a popup window. For example, use Searcher to find, select, and put down a new node in a graph. The Searcher package also includes samples and tests.\r\n\r\n## Features\r\n\r\n![GitHub Logo](/Documentation~/images/tree_view.png) ![GitHub Logo](/Documentation~/images/quick_search.png)\r\n* Popup Window Placement\r\n* Tree View\r\n* Keyboard Navigation\r\n* Quick Search\r\n* Auto-Complete\r\n* Match Highlighting\r\n* Multiple Databases\r\n\r\n## Quick Usage Example\r\n\r\n```csharp\r\nvoid OnMouseDown( MouseDownEvent evt )\r\n{\r\n    var items = new List<SearcherItem>\r\n    {\r\n        new SearcherItem( \"Books\", \"Description\", new List<SearcherItem>()\r\n        {\r\n            new SearcherItem( \"Dune\" ),\r\n        } )\r\n    };\r\n    items[0].AddChild( new SearcherItem( \"Ender's Game\" ) );\r\n\r\n    SearcherWindow.Show(\r\n        this, // this EditorWindow\r\n        items, \"Optional Title\",\r\n        item => { Debug.Log( item.name ); return /*close window?*/ true; },\r\n        evt.mousePosition );\r\n}\r\n```\r\n\r\n\r\n## Installing the Package\r\n\r\nOpen this file in your project:\r\n```\r\nPackages/manifest.json\r\n```\r\nAdd this to the ```dependencies``` array (makes sure to change the version string to your current version):\r\n```json\r\n\"com.unity.searcher\": \"4.0.0-preview\"\r\n```\r\nFor example, if this it he only package you depend on, you should have something like this (makes sure to change the version string to your current version):\r\n```json\r\n{\r\n    \"dependencies\": {\r\n        \"com.unity.searcher\": \"4.0.0-preview\"\r\n    }\r\n}\r\n```\r\n\r\n## Enabling the Samples and Tests\r\n\r\nRight now, it seems Samples and Tests only show for local packages, meaning you cloned this repo *inside* your **Packages** folder. Given you've done that, open this file in your project:\r\n```\r\nPackages/manifest.json\r\n```\r\nAdd a ```testables``` list with the package name so you get something like this (makes sure to change the version string to your current version):\r\n```json\r\n{\r\n    \"dependencies\": {\r\n        \"com.unity.searcher\": \"4.0.0-preview\"\r\n    },\r\n    \"testables\" : [ \"com.unity.searcher\" ]\r\n}\r\n```\r\nYou should see a new top-level menu called **Searcher** and you should see Searcher tests in **Test Runner**.\r\n\r\n### Searcher Creation from Database\r\n\r\n```csharp\r\nvar bookItems = new List<SearcherItem> { new SearcherItem( \"Books\" ) };\r\nvar foodItems = new List<SearcherItem> { new SearcherItem( \"Foods\" ) };\r\n\r\n// Create databases.\r\nvar databaseDir = Application.dataPath + \"/../Library/Searcher\";\r\nvar bookDatabase = SearcherDatabase.Create( bookItems, databaseDir + \"/Books\" );\r\nvar foodDatabase = SearcherDatabase.Create( foodItems, databaseDir + \"/Foods\" );\r\n\r\n// At a later time, load database from disk.\r\nbookDatabase = SearcherDatabase.Load( databaseDir + \"/Books\" );\r\n\r\nvar searcher = new Searcher(\r\n    new SearcherDatabase[]{ foodDatabase, bookDatabase },\r\n    \"Optional Title\" );\r\n```\r\n\r\n### Popup Window or Create Control\r\n\r\n```csharp\r\nSearcher m_Searcher;\r\n\r\nvoid OnMouseDown( MouseDownEvent evt ) { // Popup window...\r\n   SearcherWindow.Show( this, m_Searcher,\r\n       item => { Debug.Log( item.name ); return /*close window?*/ true; },\r\n       evt.mousePosition );\r\n}\r\n\r\n// ...or create SearcherControl VisualElement\r\nvoid OnEnable() { // ...or create SearcherControl VisualElement\r\n   var searcherControl = new SearcherControl();\r\n   searcherControl.Setup( m_Searcher, item => Debug.Log( item.name ) );\r\n   this.GetRootVisualContainer().Add( searcherControl );\r\n}\r\n```\r\n\r\n### Customize the UI via `ISearcherAdapter`\r\n\r\n```csharp\r\npublic interface ISearcherAdapter {\r\n   VisualElement MakeItem();\r\n   VisualElement Bind( VisualElement target, SearcherItem item,\r\n                       ItemExpanderState expanderState, string text );\r\n   string title { get; }\r\n   bool hasDetailsPanel { get; }\r\n   void DisplaySelectionDetails( VisualElement detailsPanel, SearcherItem o );\r\n   void DisplayNoSelectionDetails( VisualElement detailsPanel );\r\n   void InitDetailsPanel( VisualElement detailsPanel );\r\n}\r\n\r\nvar bookDatabase = SearcherDatabase.Load( Application.dataPath + \"/Books\" );\r\nvar myAdapter = new MyAdapter(); // class MyAdapter : ISearcherAdapter\r\nvar searcher = new Searcher( bookDatabase, myAdapter );\r\n\r\n```\r\n\r\n# Technical details\r\n## Requirements\r\n\r\nThis version of Searcher is compatible with the following versions of the Unity Editor:\r\n\r\n* 2019.1 and later (recommended)\r\n\r\n## Known limitations\r\n\r\nSearcher version 1.0 includes the following known limitations:\r\n\r\n* Only works with .Net 4.0\r\n\r\n## Package contents\r\n\r\nThe following table indicates the main folders of the package:\r\n\r\n|Location|Description|\r\n|---|---|\r\n|`Editor/Resources`|Contains images used in the UI.|\r\n|`Editor/Searcher`|Contains Searcher source files.|\r\n|`Samples`|Contains the samples.|\r\n|`Tests`|Contains the tests.|\r\n","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"_npmUser":{"name":"service-airflow-production@unity","email":"packman-ops+service-airflow-production@unity3d.com"},"_resolved":"","_integrity":"","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.searcher.git","type":"git","revision":"fa8f551b5cd5153fb87b4a9ac3d1eec0ddb95219","footprint":"9b4e4a5e121c5c5ace6049fa4e6422cf4baedbd8"},"_npmVersion":"6.13.4","_nodeVersion":"12.14.1","readmeFilename":"README.md","name":"com.unity.searcher","version":"4.1.0-preview","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"6e060e613d5ce4d08de1002001c51bc022365d83","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.1.0-preview.tgz"}},"4.0.9":{"_id":"com.unity.searcher@4.0.9","type":"asset","unity":"2019.1","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"scripts":{},"repository":{"url":"git@github.cds.internal.unity3d.com:unity/com.unity.searcher.git","type":"git","revision":"ec1fb56f8d8f95b1503ea22a73b83e2cfb02f083"},"name":"com.unity.searcher","version":"4.0.9","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"5eccc7ed6c869a19ca3fef7e79835e2aefacb420","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.0.9.tgz"}},"4.0.8-preview":{"_id":"com.unity.searcher@4.0.8-preview","type":"asset","unity":"2019.1","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"scripts":{},"repository":{"url":"git@github.cds.internal.unity3d.com:unity/com.unity.searcher.git","type":"git","revision":"d9fc000e200888106a68c73037cad713a332c0e9"},"name":"com.unity.searcher","version":"4.0.8-preview","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"992daaa8b262f43a00a220b4df2bf1c52636ecdb","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.0.8-preview.tgz"}},"4.0.7":{"_id":"com.unity.searcher@4.0.7","unity":"2019.1","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"scripts":{},"repository":{"url":"git@github.cds.internal.unity3d.com:unity/com.unity.searcher.git","type":"git","revision":"0ca706ae8ac90d021c96e64e839e3bfe84c1f42e"},"name":"com.unity.searcher","version":"4.0.7","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"f51200cfa5473e22b8c398d619fe57e94409d659","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.0.7.tgz"}},"4.0.7-preview":{"_id":"com.unity.searcher@4.0.7-preview","unity":"2019.1","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"scripts":{},"repository":{"url":"git@github.cds.internal.unity3d.com:unity/com.unity.searcher.git","type":"git","revision":"73797822c3766699759a0e7fb7a49bc32ec09f47"},"name":"com.unity.searcher","version":"4.0.7-preview","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"b2fd7ade5f59f9eaddcf92b0505c8a761ab45163","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.0.7-preview.tgz"}},"4.0.0":{"_id":"com.unity.searcher@4.0.0","unity":"2019.1","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"scripts":{},"repository":{"url":"git@github.cds.internal.unity3d.com:unity/com.unity.searcher.git","type":"git","revision":"f56dd51616eb65d698b3f07965444dbb8fe5cfb4"},"name":"com.unity.searcher","version":"4.0.0","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"de365590bb98a7996fde0c3cd86f3e28edfabd19","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.0.0.tgz"}},"4.0.0-preview":{"_id":"com.unity.searcher@4.0.0-preview","unity":"2019.1","samples":[{"path":"Samples~","description":"Some Searcher's basic examples","displayName":"Searchers Samples"}],"scripts":{},"repository":{"url":"git@github.cds.internal.unity3d.com:unity/com.unity.searcher.git","type":"git","revision":"1f59405e0813496431f133f4b7a1d76060a372f6"},"name":"com.unity.searcher","version":"4.0.0-preview","displayName":"Searcher","description":"General search window for use in the Editor. First target use is for GraphView node search.","keywords":["search","searcher"],"dependencies":{},"dist":{"shasum":"7e3e44d9e1c1d9db57ef99a71d9c08f72d124130","tarball":"https://download.packages.unity.com/com.unity.searcher/-/com.unity.searcher-4.0.0-preview.tgz"}}},"time":{"4.9.5":"2026-07-24T12:57:02.336Z","4.9.4":"2025-10-20T14:24:47.814Z","4.9.3":"2025-01-22T13:03:27.799Z","4.9.2":"2022-03-17T14:47:04.000Z","4.9.1":"2021-10-11T16:09:25.000Z","4.3.2":"2021-03-10T16:16:47.000Z","4.7.0-preview":"2020-08-14T15:59:58.000Z","4.6.0-preview":"2020-07-30T13:51:15.000Z","4.3.1":"2020-06-09T00:43:50.000Z","4.3.0":"2020-06-03T19:15:31.000Z","4.2.0":"2020-05-06T23:01:23.000Z","4.1.0":"2020-04-21T01:51:54.000Z","4.1.0-preview":"2020-03-20T16:38:17.000Z","4.0.9":"2019-11-11T17:05:10.000Z","4.0.8-preview":"2019-10-07T21:04:34.000Z","4.0.7":"2019-09-10T16:03:45.000Z","4.0.7-preview":"2019-08-29T18:03:34.000Z","4.0.0":"2019-07-11T23:03:07.000Z","4.0.0-preview":"2019-04-29T17:02:17.000Z"},"dist-tags":{"latest":"4.9.5"},"etag":"\"f4b5-HyG2hG3zTRPL6cVAXPm62R4Ujgo\""}