Skip to content
This repository has been archived by the owner on Jul 31, 2022. It is now read-only.

Commit

Permalink
- allow search on internal browser of Visual studio
Browse files Browse the repository at this point in the history
- improved layout of settings
  • Loading branch information
kanekotic committed Jul 20, 2015
1 parent c80113c commit f1b6e9b
Show file tree
Hide file tree
Showing 10 changed files with 136 additions and 25 deletions.
3 changes: 3 additions & 0 deletions ReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
20/07/2015:
- allow search on internal browser of Visual studio
- improved layout of settings
18/07/2015:
- Added Duck Duck Go to search engines
- Added ability to remove the literals to do general searchs
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
20/07/2015:
- allow search on internal browser of Visual studio
- improved layout of settings
18/07/2015:
- Added Duck Duck Go to search engines
- Added ability to remove the literals to do general searchs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,31 +10,31 @@ namespace soft.Hati.ErrorListSearchOn.Services.Options
[Guid("5DB71310-DD4E-4134-B67F-A4435A0EC6EC")]
public class OptionPage : DialogPage
{
private readonly SettingsManager _settingsManager;
private readonly SettingsManager settingsManager;
private readonly SettingStoreProvider settingStoreProvider;


public OptionPage()
{
settingStoreProvider = new SettingStoreProvider("ErrorSearchOn");
if (settingStoreProvider.Exist("SearchEngine") && settingStoreProvider.Exist("GeneralSearch"))
_settingsManager =
new SettingsManager(
(SearchEngineTypes)Enum.Parse(typeof (SearchEngineTypes), settingStoreProvider.Get("SearchEngine")),
Convert.ToBoolean(settingStoreProvider.Get("GeneralSearch")));
if (settingStoreProvider.Exist("SearchEngine") && settingStoreProvider.Exist("GeneralSearch") && settingStoreProvider.Exist("InternalBrowser"))
settingsManager =
new SettingsManager((SearchEngineTypes)Enum.Parse(typeof (SearchEngineTypes), settingStoreProvider.Get("SearchEngine")),
Convert.ToBoolean(settingStoreProvider.Get("GeneralSearch")),
Convert.ToBoolean(settingStoreProvider.Get("InternalBrowser")));
else
_settingsManager = new SettingsManager();
settingsManager = new SettingsManager();
}

public SettingsManager SettingsManager { get { return _settingsManager; } }
public SettingsManager SettingsManager { get { return settingsManager; } }

protected override IWin32Window Window
{
get
{
var page = new OptionUserControl { OptionsPage = this };
page.OptionsPage = this;
page.Initialize(_settingsManager);
page.Initialize(settingsManager);
return page;
}
}
Expand All @@ -44,6 +44,7 @@ public override void SaveSettingsToStorage()
base.SaveSettingsToStorage();
settingStoreProvider.Set("SearchEngine", SettingsManager.Engines.First(item => item.Value == SettingsManager.CurrentEngine).Key.ToString());
settingStoreProvider.Set("GeneralSearch", SettingsManager.GeneralSearch.ToString());
settingStoreProvider.Set("InternalBrowser", SettingsManager.InternalBrowser.ToString());
}

}
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ namespace soft.Hati.ErrorListSearchOn.Services.Options
{
public partial class OptionUserControl : UserControl
{
private SettingsManager engineManager;
private SettingsManager settingsManager;

public OptionUserControl()
{
Expand All @@ -17,22 +17,28 @@ public OptionUserControl()

public void Initialize(SettingsManager settingManager)
{
this.engineManager = settingManager;
this.settingsManager = settingManager;
SearchEngineCB.DisplayMember = "Key";
SearchEngineCB.ValueMember = "Value";
SearchEngineCB.DataSource = new BindingSource(settingManager.Engines, null);
SearchEngineCB.SelectedValue = settingManager.CurrentEngine;
LiteralsBC.Checked = settingManager.GeneralSearch;
InternalBrowserCB.Checked = settingManager.InternalBrowser;
}

private void SearchEngineCB_SelectionChangeCommitted(object sender, EventArgs e)
{
engineManager.CurrentEngine = (SearchEngine)SearchEngineCB.SelectedValue;
settingsManager.CurrentEngine = (SearchEngine)SearchEngineCB.SelectedValue;
}

private void LiteralsBC_CheckedChanged(object sender, EventArgs e)
{
engineManager.GeneralSearch = LiteralsBC.Checked;
settingsManager.GeneralSearch = LiteralsBC.Checked;
}

private void InternalBrowserCB_CheckedChanged(object sender, EventArgs e)
{
settingsManager.InternalBrowser = InternalBrowserCB.Checked;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
using System.Diagnostics;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.Interop;

namespace soft.Hati.ErrorListSearchOn.Services.Search
{
public interface Browser
{
void Run(string query);

}

public class InternalBrowser : Browser
{
public void Run(string query)
{
IVsWindowFrame ppFrame;
var service = Package.GetGlobalService(typeof(IVsWebBrowsingService)) as IVsWebBrowsingService;
service.Navigate(query, (uint)__VSWBNAVIGATEFLAGS.VSNWB_ForceNew, out ppFrame);
}
}

public class ExternalBrowser : Browser
{
public void Run(string query)
{
Process.Start(query);
}
}

public class BrowserFactory
{
public static Browser Create(bool internalBrowser)
{
if(internalBrowser)
return new InternalBrowser();
else
return new ExternalBrowser();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ namespace soft.Hati.ErrorListSearchOn.Services.Search
public interface SearchEngine
{
void Search(string query);
string GenerateQuery(string info);
}

public abstract class SearchBase : SearchEngine
Expand All @@ -24,6 +25,14 @@ public void Search(string query)
}
catch { }
}

public string GenerateQuery(string info)
{
info = info.Replace(' ', '+');
var notExpectedChars = info.ToList().Where(character => (character != '+' && !char.IsLetterOrDigit(character)));
notExpectedChars.ToList().ForEach(character => info = info.Replace(string.Format("{0}", character), Uri.HexEscape(character)));
return string.Format("{0}{1}", Url, info);
}
}

public class GoogleSearch : SearchBase
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ private void SearchErrorOn(object sender, EventArgs e)
{

string error = ProcessString(arr, package.SettingsManager.GeneralSearch);
package.SettingsManager.CurrentEngine.Search(error);
var query = package.SettingsManager.CurrentEngine.GenerateQuery(error);
BrowserFactory.Create(package.SettingsManager.InternalBrowser).Run(query);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ public class SettingsManager
{ SearchEngineTypes.DuckDuckGo, new DuckDuckGo() }
};

public SettingsManager(SearchEngineTypes type = SearchEngineTypes.Google, bool generalSearch = false)
public SettingsManager(SearchEngineTypes type = SearchEngineTypes.Google, bool generalSearch = false, bool internalBrowser = false)
{
CurrentEngine = engines[type];
GeneralSearch = generalSearch;
InternalBrowser = internalBrowser;
}

public IDictionary<SearchEngineTypes, SearchEngine> Engines
Expand All @@ -24,7 +25,7 @@ public SettingsManager(SearchEngineTypes type = SearchEngineTypes.Google, bool g
}

public bool GeneralSearch { get; set; }

public bool InternalBrowser { get; set; }
public SearchEngine CurrentEngine { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
<Compile Include="SearchOnPackage.cs" />
<Compile Include="SearchOnPackageGuids.cs" />
<Compile Include="Services\Options\SettingStoreProvider.cs" />
<Compile Include="Services\Search\Browser.cs" />
<Compile Include="Services\Search\SettingsManager.cs" />
<Compile Include="Services\Options\OptionPageGrid.cs">
<SubType>Component</SubType>
Expand All @@ -74,7 +75,9 @@
</ItemGroup>
<ItemGroup>
<None Include="Key.snk" />
<None Include="packages.config" />
<None Include="packages.config">
<SubType>Designer</SubType>
</None>
<None Include="source.extension.vsixmanifest">
<SubType>Designer</SubType>
</None>
Expand Down

0 comments on commit f1b6e9b

Please sign in to comment.