Browse Source

Added panel with options for code completion.

Fixed bug in CodeCompletionListView (when entering a name that did not exist in the list, the ListView didn't remove the current selection but selected the first entry).
Made MessageService.ShowError use the ExceptionBox in release builds.
Made ExceptionBox link to the mailing list instead of the bugs forum.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@227 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
f395a72edb
  1. 6
      AddIns/ICSharpCode.SharpDevelop.addin
  2. 45
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs
  3. 13
      src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/CodeCompletionListView.cs
  4. 3
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  5. 139
      src/Main/Base/Project/Resources/CodeCompletionOptionPanel.xfrm
  6. 94
      src/Main/Base/Project/Resources/GeneralTextEditorPanel.xfrm
  7. 47
      src/Main/Base/Project/Resources/SelectStylePanel.xfrm
  8. 2
      src/Main/Base/Project/Src/Commands/ClassMemberMenuBuilder.cs
  9. 98
      src/Main/Base/Project/Src/Dom/CodeCompletionOptions.cs
  10. 2
      src/Main/Base/Project/Src/Gui/Dialogs/AbstractOptionPanel.cs
  11. 2
      src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/IDEOptions/CodeGenerationPanel.cs
  12. 12
      src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/IDEOptions/SelectStylePanel.cs
  13. 23
      src/Main/Base/Project/Src/Services/AmbienceService/AmbienceService.cs
  14. 11
      src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
  15. 22
      src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/AbstractPropertyCodeGenerator.cs
  16. 12
      src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/CodeGenerator.cs
  17. 7
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/CodeCompletionBinding.cs
  18. 20
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionDataUsageCache.cs
  19. 8
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/SharpDevelopTextAreaControl.cs
  20. 9
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/SharpDevelopTextEditorProperties.cs
  21. 72
      src/Main/Base/Project/Src/TextEditor/Gui/OptionPanels/CodeCompletionPanel.cs
  22. 10
      src/Main/Base/Project/Src/TextEditor/Gui/OptionPanels/GeneralTextEditorPanel.cs
  23. 25
      src/Main/Core/Project/Src/Services/MessageService/MessageService.cs
  24. 69
      src/Main/StartUp/Project/Dialogs/ExceptionBox.cs
  25. 26
      src/Main/StartUp/Project/SharpDevelopMain.cs
  26. 84
      src/SharpDevelop.sln

6
AddIns/ICSharpCode.SharpDevelop.addin

@ -1702,6 +1702,9 @@ @@ -1702,6 +1702,9 @@
<DialogPanel id = "Behavior"
label = "${res:Dialog.Options.IDEOptions.TextEditor.Behaviour.PanelName}"
class = "ICSharpCode.SharpDevelop.DefaultEditor.Gui.OptionPanels.BehaviorTextEditorPanel"/>
<DialogPanel id = "CodeCompletion"
label = "${res:Dialog.Options.IDEOptions.TextEditor.CodeCompletion.PanelName}"
class = "ICSharpCode.SharpDevelop.DefaultEditor.Gui.OptionPanels.CodeCompletionPanel"/>
</Path>
<Path name = "/SharpDevelop/Dialogs/OptionsDialog">
@ -1718,6 +1721,9 @@ @@ -1718,6 +1721,9 @@
<DialogPanel id = "Behavior"
label = "${res:Dialog.Options.IDEOptions.TextEditor.Behaviour.PanelName}"
class = "ICSharpCode.SharpDevelop.DefaultEditor.Gui.OptionPanels.BehaviorTextEditorPanel"/>
<DialogPanel id = "CodeCompletion"
label = "${res:Dialog.Options.IDEOptions.TextEditor.CodeCompletion.PanelName}"
class = "ICSharpCode.SharpDevelop.DefaultEditor.Gui.OptionPanels.CodeCompletionPanel"/>
</DialogPanel>
</Path>

45
src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs

@ -31,33 +31,32 @@ namespace CSharpBinding @@ -31,33 +31,32 @@ namespace CSharpBinding
return false;
CSharpBinding.Parser.ExpressionFinder ef = new CSharpBinding.Parser.ExpressionFinder();
int cursor = editor.ActiveTextAreaControl.Caret.Offset;
ExpressionContext context;
ExpressionContext context = null;
if (ch == '(') {
switch (editor.GetWordBeforeCaret().Trim()) {
case "for":
case "lock":
context = ExpressionContext.Default;
break;
case "using":
context = ExpressionContext.TypeDerivingFrom(ReflectionReturnType.Disposable.GetUnderlyingClass(), false);
break;
case "catch":
context = ExpressionContext.TypeDerivingFrom(ReflectionReturnType.Exception.GetUnderlyingClass(), false);
break;
case "foreach":
case "typeof":
case "sizeof":
case "default":
context = ExpressionContext.Type;
break;
default:
context = null;
break;
if (CodeCompletionOptions.KeywordCompletionEnabled) {
switch (editor.GetWordBeforeCaret().Trim()) {
case "for":
case "lock":
context = ExpressionContext.Default;
break;
case "using":
context = ExpressionContext.TypeDerivingFrom(ReflectionReturnType.Disposable.GetUnderlyingClass(), false);
break;
case "catch":
context = ExpressionContext.TypeDerivingFrom(ReflectionReturnType.Exception.GetUnderlyingClass(), false);
break;
case "foreach":
case "typeof":
case "sizeof":
case "default":
context = ExpressionContext.Type;
break;
}
}
if (context != null) {
editor.ShowCompletionWindow(new CtrlSpaceCompletionDataProvider(context), ch);
return true;
} else if (EnableMethodInsight) {
} else if (EnableMethodInsight && CodeCompletionOptions.InsightEnabled) {
editor.ShowInsightWindow(new MethodInsightDataProvider());
return true;
}
@ -70,7 +69,7 @@ namespace CSharpBinding @@ -70,7 +69,7 @@ namespace CSharpBinding
editor.ShowCompletionWindow(new AttributesDataProvider(), ch);
return true;
}
} else if (ch == ',') {
} else if (ch == ',' && CodeCompletionOptions.InsightRefreshOnComma && CodeCompletionOptions.InsightEnabled) {
// Show MethodInsightWindow or IndexerInsightWindow
string documentText = editor.Text;
int oldCursor = cursor;

13
src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/CodeCompletionListView.cs

@ -86,9 +86,20 @@ namespace ICSharpCode.TextEditor.Gui.CompletionWindow @@ -86,9 +86,20 @@ namespace ICSharpCode.TextEditor.Gui.CompletionWindow
public void SelectIndex(int index)
{
index = Math.Max(0, index);
int oldSelectedItem = selectedItem;
int oldFirstItem = firstItem;
if (index < 0) {
selectedItem = -1;
if (oldSelectedItem >= 0) {
Invalidate(new Rectangle(0, (oldSelectedItem - firstItem) * ItemHeight, Width, (oldSelectedItem - firstItem + 1) * ItemHeight));
}
Update();
OnSelectedItemChanged(EventArgs.Empty);
return;
}
index = Math.Max(0, index);
selectedItem = Math.Max(0, Math.Min(completionData.Length - 1, index));
if (selectedItem < firstItem) {
FirstItem = selectedItem;

3
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -679,6 +679,9 @@ @@ -679,6 +679,9 @@
<Compile Include="Src\TextEditor\Gui\Editor\CompletionWindow\CtrlSpaceCompletionDataProvider.cs" />
<Compile Include="Src\Dom\Implementations\CombinedReturnType.cs" />
<Compile Include="Src\TextEditor\Gui\Editor\CompletionWindow\CodeCompletionDataUsageCache.cs" />
<EmbeddedResource Include="Resources\CodeCompletionOptionPanel.xfrm" />
<Compile Include="Src\TextEditor\Gui\OptionPanels\CodeCompletionPanel.cs" />
<Compile Include="Src\Dom\CodeCompletionOptions.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj">

139
src/Main/Base/Project/Resources/CodeCompletionOptionPanel.xfrm

@ -0,0 +1,139 @@ @@ -0,0 +1,139 @@
<Components version="1.0">
<System.Windows.Forms.UserControl>
<Name value="CodeCompletionOptionPanel" />
<ClientSize value="{Width=376, Height=344}" />
<Controls>
<System.Windows.Forms.GroupBox>
<Name value="groupBox" />
<Location value="{X=4,Y=55}" />
<Text value="Code completion detail settings" />
<Size value="{Width=369, Height=286}" />
<TabIndex value="2" />
<Anchor value="Top, Bottom, Left, Right" />
<Controls>
<System.Windows.Forms.CheckBox>
<Name value="refreshInsightOnCommaCheckBox" />
<Location value="{X=31,Y=186}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="Re-open tooltip with better overload when pressing comma" />
<TabIndex value="10" />
<Size value="{Width=332, Height=24}" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.CheckBox>
<Name value="useDebugTooltipsOnlyCheckBox" />
<Location value="{X=31,Y=85}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="Only in debug mode" />
<TabIndex value="6" />
<Size value="{Width=332, Height=24}" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.Button>
<Name value="clearDataUseCacheButton" />
<Location value="{X=225,Y=40}" />
<Text value="Clear cache" />
<Size value="{Width=101, Height=23}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<TabIndex value="4" />
</System.Windows.Forms.Button>
<System.Windows.Forms.CheckBox>
<Name value="useTooltipsCheckBox" />
<Location value="{X=12,Y=66}" />
<Checked value="True" />
<CheckState value="Checked" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="Show tooltip when moving mouse over expression" />
<TabIndex value="5" />
<Size value="{Width=351, Height=24}" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.CheckBox>
<Name value="useInsightCheckBox" />
<Location value="{X=12,Y=167}" />
<Checked value="True" />
<CheckState value="Checked" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="Show tooltip when writing method calls" />
<TabIndex value="9" />
<Size value="{Width=351, Height=24}" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.Label>
<Name value="label4" />
<Location value="{X=6,Y=112}" />
<Text value="The following options are language-dependend, some options are not available in some programming languages." />
<Size value="{Width=357, Height=31}" />
<TabIndex value="7" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.Label>
<System.Windows.Forms.CheckBox>
<Name value="useKeywordCompletionCheckBox" />
<Location value="{X=12,Y=146}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="Trigger code completion after keywords" />
<TabIndex value="8" />
<Size value="{Width=351, Height=24}" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.Label>
<Name value="dataUsageCacheLabel2" />
<Location value="{X=154,Y=42}" />
<Text value="items" />
<TextAlign value="MiddleLeft" />
<Size value="{Width=65, Height=23}" />
<TabIndex value="3" />
</System.Windows.Forms.Label>
<System.Windows.Forms.NumericUpDown>
<Name value="dataUsageCacheItemCountNumericUpDown" />
<Value value="50" />
<TabIndex value="2" />
<Maximum value="10000" />
<Minimum value="50" />
<Increment value="50" />
<TextAlign value="Right" />
<Size value="{Width=68, Height=21}" />
<Location value="{X=80,Y=42}" />
</System.Windows.Forms.NumericUpDown>
<System.Windows.Forms.Label>
<Name value="dataUsageCacheLabel1" />
<Location value="{X=18,Y=42}" />
<Text value="Save" />
<TextAlign value="MiddleRight" />
<Size value="{Width=56, Height=21}" />
<TabIndex value="1" />
</System.Windows.Forms.Label>
<System.Windows.Forms.CheckBox>
<Name value="useDataUsageCacheCheckBox" />
<Location value="{X=12,Y=20}" />
<Checked value="True" />
<CheckState value="Checked" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="Pre-select recently used members" />
<TabIndex value="0" />
<Size value="{Width=351, Height=24}" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
</Controls>
</System.Windows.Forms.GroupBox>
<System.Windows.Forms.Label>
<Name value="label1" />
<Location value="{X=8,Y=8}" />
<Text value="Use the following option to turn code completion completely off:" />
<TextAlign value="MiddleLeft" />
<Size value="{Width=365, Height=22}" />
<TabIndex value="0" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.Label>
<System.Windows.Forms.CheckBox>
<Name value="codeCompletionEnabledCheckBox" />
<Location value="{X=16,Y=25}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="${res:Dialog.Options.IDEOptions.TextEditor.General.CodeCompletionCheckBox}" />
<TabIndex value="1" />
<Size value="{Width=357, Height=24}" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
</Controls>
</System.Windows.Forms.UserControl>
</Components>

94
src/Main/Base/Project/Resources/GeneralTextEditorPanel.xfrm

@ -1,144 +1,144 @@ @@ -1,144 +1,144 @@
<Components version="1.0">
<System.Windows.Forms.UserControl>
<Name value="CreatedObject0" />
<DockPadding value="" />
<ClientSize value="{Width=376, Height=344}" />
<Controls>
<System.Windows.Forms.GroupBox>
<Name value="CreatedObject2" />
<TabIndex value="0" />
<Location value="{X=8,Y=8}" />
<Anchor value="Top, Left, Right" />
<Size value="{Width=360, Height=80}" />
<Text value="${res:Dialog.Options.IDEOptions.TextEditor.General.GeneralOptionsGroupBox}" />
<Size value="{Width=360, Height=80}" />
<TabIndex value="0" />
<Anchor value="Top, Left, Right" />
<Controls>
<System.Windows.Forms.CheckBox>
<Name value="showQuickClassBrowserCheckBox" />
<Location value="{X=184,Y=52}" />
<Size value="{Width=168, Height=24}" />
<Location value="{X=8,Y=52}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="${res:Dialog.Options.IDEOptions.TextEditor.General.ShowQuickClassBrowserCheckBox}" />
<Anchor value="Top, Left, Right" />
<TabIndex value="4" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.CheckBox>
<Name value="enableCodeCompletionCheckBox" />
<Location value="{X=8,Y=20}" />
<Size value="{Width=176, Height=24}" />
<Text value="${res:Dialog.Options.IDEOptions.TextEditor.General.CodeCompletionCheckBox}" />
<TabIndex value="1" />
<Size value="{Width=344, Height=24}" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.CheckBox>
<Name value="enableFoldingCheckBox" />
<Location value="{X=184,Y=24}" />
<Size value="{Width=168, Height=24}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="${res:Dialog.Options.IDEOptions.TextEditor.General.FoldingCheckBox}" />
<Anchor value="Top, Left, Right" />
<TabIndex value="3" />
<Size value="{Width=168, Height=24}" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.CheckBox>
<Name value="enableDoublebufferingCheckBox" />
<Location value="{X=8,Y=48}" />
<Size value="{Width=168, Height=24}" />
<Location value="{X=8,Y=24}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="${res:Dialog.Options.IDEOptions.TextEditor.General.DoubleBufferCheckBox}" />
<TabIndex value="2" />
<Size value="{Width=168, Height=24}" />
</System.Windows.Forms.CheckBox>
</Controls>
</System.Windows.Forms.GroupBox>
<System.Windows.Forms.GroupBox>
<Name value="CreatedObject7" />
<TabIndex value="1" />
<Location value="{X=8,Y=96}" />
<Anchor value="Top, Left, Right" />
<Size value="{Width=360, Height=136}" />
<Text value="${res:Dialog.Options.IDEOptions.TextEditor.General.FontGroupBox}" />
<Size value="{Width=360, Height=136}" />
<TabIndex value="1" />
<Anchor value="Top, Left, Right" />
<Controls>
<System.Windows.Forms.Label>
<Name value="fontPreviewLabel" />
<Location value="{X=8,Y=71}" />
<Text value="AaBbCcXxYyZz" />
<BorderStyle value="FixedSingle" />
<TextAlign value="MiddleCenter" />
<Anchor value="Top, Left, Right" />
<TabIndex value="4" />
<Size value="{Width=344, Height=40}" />
<Location value="{X=8,Y=71}" />
<TabIndex value="4" />
<BackColor value="Color [ControlLightLight]" />
<BorderStyle value="FixedSingle" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.Label>
<System.Windows.Forms.Label>
<Name value="fontSizeLabel" />
<Location value="{X=248,Y=21}" />
<Text value="${res:Dialog.Options.IDEOptions.TextEditor.General.FontSizeLabel}" />
<TextAlign value="BottomLeft" />
<Anchor value="Top, Left, Right" />
<TabIndex value="2" />
<Size value="{Width=100, Height=20}" />
<Location value="{X=248,Y=21}" />
<TabIndex value="2" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.Label>
<System.Windows.Forms.ComboBox>
<Name value="fontSizeComboBox" />
<Anchor value="Top, Left, Right" />
<TabIndex value="3" />
<Location value="{X=248,Y=41}" />
<Anchor value="Top, Left, Right" />
<Size value="{Width=104, Height=21}" />
<FormattingEnabled value="True" />
<Location value="{X=248,Y=41}" />
</System.Windows.Forms.ComboBox>
<System.Windows.Forms.ComboBox>
<Name value="fontListComboBox" />
<DrawMode value="OwnerDrawFixed" />
<TabIndex value="1" />
<Location value="{X=8,Y=40}" />
<Size value="{Width=224, Height=22}" />
<FormattingEnabled value="True" />
<DropDownStyle value="DropDownList" />
<Location value="{X=8,Y=40}" />
</System.Windows.Forms.ComboBox>
<System.Windows.Forms.CheckBox>
<Name value="mouseWheelZoomCheckBox" />
<Location value="{X=192,Y=109}" />
<Size value="{Width=160, Height=24}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="${res:Dialog.Options.IDEOptions.TextEditor.General.MouseWheelZoomCheckBoxCheckBox}" />
<Anchor value="Top, Left, Right" />
<TabIndex value="6" />
<Size value="{Width=160, Height=24}" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.Label>
<Name value="CreatedObject9" />
<Location value="{X=8,Y=20}" />
<Text value="${res:Dialog.Options.IDEOptions.TextEditor.General.TextfontLabel}" />
<TextAlign value="BottomLeft" />
<TabIndex value="0" />
<Size value="{Width=208, Height=20}" />
<Location value="{X=8,Y=20}" />
<TabIndex value="0" />
</System.Windows.Forms.Label>
<System.Windows.Forms.CheckBox>
<Name value="enableAAFontRenderingCheckBox" />
<Location value="{X=8,Y=108}" />
<Size value="{Width=184, Height=24}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="${res:Dialog.Options.IDEOptions.TextEditor.General.AntialiasedFontCheckBox}" />
<TabIndex value="5" />
<Size value="{Width=184, Height=24}" />
</System.Windows.Forms.CheckBox>
</Controls>
</System.Windows.Forms.GroupBox>
<System.Windows.Forms.GroupBox>
<Name value="CreatedObject8" />
<TabIndex value="2" />
<Name value="CreatedObject8b" />
<Location value="{X=8,Y=240}" />
<Anchor value="Top, Left, Right" />
<Size value="{Width=360, Height=72}" />
<Text value="${res:Dialog.Options.IDEOptions.TextEditor.General.FontGroupBox.FileEncodingGroupBox}" />
<Size value="{Width=360, Height=72}" />
<TabIndex value="2" />
<Anchor value="Top, Left, Right" />
<Controls>
<System.Windows.Forms.Label>
<Name value="CreatedObject9" />
<Name value="CreatedObject9b" />
<Location value="{X=8,Y=24}" />
<Text value="${res:Dialog.Options.IDEOptions.TextEditor.General.FontGroupBox.FileEncodingLabel}" />
<TextAlign value="BottomLeft" />
<Anchor value="Top, Left, Right" />
<TabIndex value="0" />
<Size value="{Width=336, Height=16}" />
<Location value="{X=8,Y=24}" />
<TabIndex value="0" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.Label>
<System.Windows.Forms.ComboBox>
<Name value="textEncodingComboBox" />
<Anchor value="Top, Left, Right" />
<TabIndex value="1" />
<Location value="{X=8,Y=40}" />
<Anchor value="Top, Left, Right" />
<Size value="{Width=344, Height=21}" />
<FormattingEnabled value="True" />
<DropDownStyle value="DropDownList" />
<Location value="{X=8,Y=40}" />
</System.Windows.Forms.ComboBox>
</Controls>
</System.Windows.Forms.GroupBox>
</Controls>
</System.Windows.Forms.UserControl>
</Components>
</Components>

47
src/Main/Base/Project/Resources/SelectStylePanel.xfrm

@ -1,60 +1,71 @@ @@ -1,60 +1,71 @@
<Components version="1.0">
<System.Windows.Forms.UserControl>
<Name value="CreatedObject0" />
<DockPadding value="" />
<ClientSize value="{Width=368, Height=272}" />
<Controls>
<System.Windows.Forms.CheckBox>
<Name value="showToolBarCheckBox" />
<Location value="{X=8,Y=144}" />
<Size value="{Width=352, Height=24}" />
<Location value="{X=8,Y=165}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="${res:Dialog.Options.IDEOptions.SelectStyle.ShowToolBarCheckBox}" />
<Anchor value="Top, Left, Right" />
<TabIndex value="3" />
<Size value="{Width=352, Height=24}" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.CheckBox>
<Name value="showStatusBarCheckBox" />
<Location value="{X=8,Y=120}" />
<Size value="{Width=352, Height=24}" />
<Location value="{X=8,Y=141}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="${res:Dialog.Options.IDEOptions.SelectStyle.ShowStatusBarCheckBox}" />
<Anchor value="Top, Left, Right" />
<TabIndex value="2" />
<Size value="{Width=352, Height=24}" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.GroupBox>
<Name value="groupBox1" />
<TabIndex value="1" />
<Location value="{X=8,Y=8}" />
<Anchor value="Top, Left, Right" />
<Size value="{Width=352, Height=104}" />
<Text value="${res:Dialog.Options.IDEOptions.SelectStyle.VisualStyleGroupBox}" />
<Size value="{Width=352, Height=127}" />
<TabIndex value="1" />
<Anchor value="Top, Left, Right" />
<Controls>
<System.Windows.Forms.CheckBox>
<Name value="preferProjectAmbienceCheckBox" />
<Location value="{X=8,Y=97}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="Prefer project's ambience if possible" />
<TabIndex value="4" />
<Size value="{Width=336, Height=24}" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.CheckBox>
<Name value="showExtensionsCheckBox" />
<Location value="{X=8,Y=19}" />
<Size value="{Width=336, Height=24}" />
<FlatAppearance value="System.Windows.Forms.FlatButtonAppearance" />
<Text value="${res:Dialog.Options.IDEOptions.SelectStyle.ShowExtensionsCheckBox}" />
<Anchor value="Top, Left, Right" />
<TabIndex value="1" />
<Size value="{Width=336, Height=24}" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.ComboBox>
<Name value="selectAmbienceComboBox" />
<Anchor value="Top, Left, Right" />
<TabIndex value="3" />
<Location value="{X=8,Y=75}" />
<Anchor value="Top, Left, Right" />
<Size value="{Width=336, Height=21}" />
<FormattingEnabled value="True" />
<DropDownStyle value="DropDownList" />
<Location value="{X=8,Y=75}" />
</System.Windows.Forms.ComboBox>
<System.Windows.Forms.Label>
<Name value="label" />
<Location value="{X=8,Y=51}" />
<Text value="${res:Dialog.Options.IDEOptions.SelectStyle.SelectAmbienceLabel}" />
<TextAlign value="BottomLeft" />
<Anchor value="Top, Left, Right" />
<TabIndex value="2" />
<Size value="{Width=336, Height=23}" />
<Location value="{X=8,Y=51}" />
<TabIndex value="2" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.Label>
</Controls>
</System.Windows.Forms.GroupBox>
</Controls>
</System.Windows.Forms.UserControl>
</Components>
</Components>

2
src/Main/Base/Project/Src/Commands/ClassMemberMenuBuilder.cs

@ -133,6 +133,7 @@ namespace ICSharpCode.SharpDevelop.Commands @@ -133,6 +133,7 @@ namespace ICSharpCode.SharpDevelop.Commands
MenuCommand item = (MenuCommand)sender;
IMember member = (IMember)item.Tag;
TextEditorControl textEditor = JumpBehindDefinition(member);
AbstractPropertyCodeGenerator generator;
if (includeSetter)
generator = new GetterAndSetterCodeGenerator(member.DeclaringType);
@ -145,6 +146,7 @@ namespace ICSharpCode.SharpDevelop.Commands @@ -145,6 +146,7 @@ namespace ICSharpCode.SharpDevelop.Commands
}
}
generator.BeginWithNewLine = true;
generator.GenerateCode(textEditor.ActiveTextAreaControl.TextArea, list);
}

98
src/Main/Base/Project/Src/Dom/CodeCompletionOptions.cs

@ -0,0 +1,98 @@ @@ -0,0 +1,98 @@
/*
* Created by SharpDevelop.
* User: Daniel Grunwald
* Date: 21.07.2005
* Time: 21:46
*/
using System;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop.Dom
{
/// <summary>
/// Class containing static properties for the code completion options.
/// </summary>
public static class CodeCompletionOptions
{
static Properties properties = PropertyService.Get("CodeCompletionOptions", new Properties());
public static Properties Properties {
get {
return properties;
}
}
public static bool EnableCodeCompletion {
get {
return properties.Get("EnableCC", true);
}
set {
properties.Set("EnableCC", value);
}
}
public static bool DataUsageCacheEnabled {
get {
return properties.Get("DataUsageCacheEnabled", true);
}
set {
properties.Set("DataUsageCacheEnabled", value);
}
}
public static int DataUsageCacheItemCount {
get {
return properties.Get("DataUsageCacheItemCount", 200);
}
set {
properties.Set("DataUsageCacheItemCount", value);
}
}
public static bool TooltipsEnabled {
get {
return properties.Get("TooltipsEnabled", true);
}
set {
properties.Set("TooltipsEnabled", value);
}
}
public static bool TooltipsOnlyWhenDebugging {
get {
return properties.Get("TooltipsOnlyWhenDebugging", false);
}
set {
properties.Set("TooltipsOnlyWhenDebugging", value);
}
}
public static bool KeywordCompletionEnabled {
get {
return properties.Get("KeywordCompletionEnabled", true);
}
set {
properties.Set("KeywordCompletionEnabled", value);
}
}
public static bool InsightEnabled {
get {
return properties.Get("InsightEnabled", true);
}
set {
properties.Set("InsightEnabled", value);
}
}
public static bool InsightRefreshOnComma {
get {
return properties.Get("InsightRefreshOnComma", true);
}
set {
properties.Set("InsightRefreshOnComma", value);
}
}
}
}

2
src/Main/Base/Project/Src/Gui/Dialogs/AbstractOptionPanel.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
// <file>
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>

2
src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/IDEOptions/CodeGenerationPanel.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
// <file>
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>

12
src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/IDEOptions/SelectStylePanel.cs

@ -24,17 +24,18 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -24,17 +24,18 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
{
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("Resources.SelectStylePanel.xfrm"));
((CheckBox)ControlDictionary["showExtensionsCheckBox"]).Checked = PropertyService.Get("ICSharpCode.SharpDevelop.Gui.ProjectBrowser.ShowExtensions", true);
Get<CheckBox>("showExtensions").Checked = PropertyService.Get("ICSharpCode.SharpDevelop.Gui.ProjectBrowser.ShowExtensions", true);
AddInTreeNode treeNode = AddInTree.GetTreeNode("/SharpDevelop/Workbench/Ambiences");
foreach (Codon codon in treeNode.Codons) {
((ComboBox)ControlDictionary["selectAmbienceComboBox"]).Items.Add(codon.Id);
}
}
((ComboBox)ControlDictionary["selectAmbienceComboBox"]).Text = PropertyService.Get("SharpDevelop.UI.CurrentAmbience", "C#");
ControlDictionary["selectAmbienceComboBox"].Text = PropertyService.Get("SharpDevelop.UI.CurrentAmbience", "C#");
Get<CheckBox>("preferProjectAmbience").Checked = AmbienceService.UseProjectAmbienceIfPossible;
((CheckBox)ControlDictionary["showStatusBarCheckBox"]).Checked = PropertyService.Get("ICSharpCode.SharpDevelop.Gui.StatusBarVisible", true);
((CheckBox)ControlDictionary["showToolBarCheckBox"]).Checked = PropertyService.Get("ICSharpCode.SharpDevelop.Gui.ToolBarVisible", true);
Get<CheckBox>("showStatusBar").Checked = PropertyService.Get("ICSharpCode.SharpDevelop.Gui.StatusBarVisible", true);
Get<CheckBox>("showToolBar").Checked = PropertyService.Get("ICSharpCode.SharpDevelop.Gui.ToolBarVisible", true);
}
public override bool StorePanelContents()
@ -43,6 +44,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -43,6 +44,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
PropertyService.Set("SharpDevelop.UI.CurrentAmbience", ((ComboBox)ControlDictionary["selectAmbienceComboBox"]).Text);
PropertyService.Set("ICSharpCode.SharpDevelop.Gui.StatusBarVisible", ((CheckBox)ControlDictionary["showStatusBarCheckBox"]).Checked);
PropertyService.Set("ICSharpCode.SharpDevelop.Gui.ToolBarVisible", ((CheckBox)ControlDictionary["showToolBarCheckBox"]).Checked);
AmbienceService.UseProjectAmbienceIfPossible = Get<CheckBox>("preferProjectAmbience").Checked;
return true;
}
}

23
src/Main/Base/Project/Src/Services/AmbienceService/AmbienceService.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
// <file>
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
@ -38,15 +38,26 @@ namespace ICSharpCode.Core @@ -38,15 +38,26 @@ namespace ICSharpCode.Core
}
}
public static bool UseProjectAmbienceIfPossible {
get {
return PropertyService.Get("SharpDevelop.UI.UseProjectAmbience", true);
}
set {
PropertyService.Set("SharpDevelop.UI.UseProjectAmbience", value);
}
}
static AmbienceReflectionDecorator defaultAmbience;
public static AmbienceReflectionDecorator CurrentAmbience {
get {
ICSharpCode.SharpDevelop.Project.IProject p = ICSharpCode.SharpDevelop.Project.ProjectService.CurrentProject;
if (p != null) {
IAmbience ambience = p.Ambience;
if (ambience != null) {
return new AmbienceReflectionDecorator(ambience);
if (UseProjectAmbienceIfPossible) {
ICSharpCode.SharpDevelop.Project.IProject p = ICSharpCode.SharpDevelop.Project.ProjectService.CurrentProject;
if (p != null) {
IAmbience ambience = p.Ambience;
if (ambience != null) {
return new AmbienceReflectionDecorator(ambience);
}
}
}
if (defaultAmbience == null) {

11
src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs

@ -333,6 +333,9 @@ namespace ICSharpCode.Core @@ -333,6 +333,9 @@ namespace ICSharpCode.Core
try {
TextArea textArea = (TextArea)sender;
if (textArea.ToolTipVisible) return;
if (!CodeCompletionOptions.TooltipsEnabled) return;
// TODO: if (CodeCompletionOptions.TooltipsOnlyWhenDebugging && !isDebugging) return;
Point mousepos = textArea.PointToClient(Control.MousePosition);
Rectangle viewRect = textArea.TextView.DrawingPosition;
@ -345,11 +348,11 @@ namespace ICSharpCode.Core @@ -345,11 +348,11 @@ namespace ICSharpCode.Core
if (expressionFinder == null)
return;
LineSegment seg = doc.GetLineSegment(logicPos.Y);
int xPosition = Math.Min(seg.Length - 1, logicPos.X);
if (logicPos.X > seg.Length - 1)
return;
string textContent = doc.TextContent;
ExpressionResult expressionResult = expressionFinder.FindFullExpression(textContent, seg.Offset + xPosition);
ExpressionResult expressionResult = expressionFinder.FindFullExpression(textContent, seg.Offset + logicPos.X);
string expression = expressionResult.Expression;
//Console.WriteLine("MouseMove@" + logicPos + ":" + expression);
if (expression != null && expression.Length > 0) {
if (expression == oldExpression && oldLine == logicPos.Y) {
// same expression in same line -> reuse old tooltip
@ -360,7 +363,7 @@ namespace ICSharpCode.Core @@ -360,7 +363,7 @@ namespace ICSharpCode.Core
// otherwise textArea will close the tooltip.
} else {
// Look if it is variable
ResolveResult result = ParserService.Resolve(expressionResult, logicPos.Y + 1, xPosition + 1, textArea.MotherTextEditorControl.FileName, textContent);
ResolveResult result = ParserService.Resolve(expressionResult, logicPos.Y + 1, logicPos.X + 1, textArea.MotherTextEditorControl.FileName, textContent);
string value = GetText(result);
if (value != null) {
#if DEBUG

22
src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/AbstractPropertyCodeGenerator.cs

@ -22,7 +22,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands @@ -22,7 +22,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
public override int ImageIndex {
get {
return ClassBrowserIconService.PropertyIndex;
}
}
@ -37,9 +36,28 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands @@ -37,9 +36,28 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
return Char.ToUpper(fieldName[0]) + fieldName.Substring(1);
}
bool beginWithNewLine;
/// <summary>
/// Gets/Sets if the CodeGenerator should insert a blank line in front of the
/// first property.
/// </summary>
public bool BeginWithNewLine {
get {
return beginWithNewLine;
}
set {
beginWithNewLine = value;
}
}
protected override void StartGeneration(IList items, string fileExtension)
{
for (int i = 0; i < items.Count; ++i) {
if ((i > 0 || BeginWithNewLine) && BlankLinesBetweenMembers) {
Return();
IndentLine();
}
FieldWrapper fw = (FieldWrapper)items[i];
if (fileExtension == ".vb") {
editActionHandler.InsertString("Public " + (fw.Field.IsStatic ? "Shared " : "") + "Property " + GetPropertyName(fw.Field.Name) + " As " + vba.Convert(fw.Field.ReturnType));
@ -65,8 +83,8 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands @@ -65,8 +83,8 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
} else {
editActionHandler.InsertChar('}');
}
++numOps;
Return();
IndentLine();
}

12
src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/CodeGenerator.cs

@ -70,11 +70,15 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands @@ -70,11 +70,15 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
}
}
protected bool StartCodeBlockInSameLine {
public static bool BlankLinesBetweenMembers {
get {
Properties p = (Properties)PropertyService.Get("SharpDevelop.UI.CodeGenerationOptions", new Properties());
return p.Get("StartBlockOnSameLine", true);
return AmbienceService.CodeGenerationProperties.Get("BlankLinesBetweenMembers", true);
}
}
public static bool StartCodeBlockInSameLine {
get {
return AmbienceService.CodeGenerationProperties.Get("StartBlockOnSameLine", true);
}
}

7
src/Main/Base/Project/Src/TextEditor/Gui/Editor/CodeCompletionBinding.cs

@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
using System;
using System.IO;
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
{
@ -81,14 +82,14 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -81,14 +82,14 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
return false;
switch (ch) {
case '(':
if (enableMethodInsight) {
if (enableMethodInsight && CodeCompletionOptions.InsightEnabled) {
editor.ShowInsightWindow(new MethodInsightDataProvider());
return true;
} else {
return false;
}
case '[':
if (enableIndexerInsight) {
if (enableIndexerInsight && CodeCompletionOptions.InsightEnabled) {
editor.ShowInsightWindow(new IndexerInsightDataProvider());
return true;
} else {
@ -109,6 +110,8 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -109,6 +110,8 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
return false;
}
case ' ':
if (!CodeCompletionOptions.KeywordCompletionEnabled)
return false;
string word = editor.GetWordBeforeCaret();
if (word != null)
return HandleKeyword(editor, word);

20
src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionDataUsageCache.cs

@ -9,6 +9,7 @@ using System; @@ -9,6 +9,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
@ -46,11 +47,9 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -46,11 +47,9 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
/// <summary>Minimum number how often an item must be used to be saved to
/// the file. Items with less uses than this count also get a priority penalty.
/// (Because the first use would otherwise always be 100% priority)</summary>
const int MinUsesForSave = 3;
const int MinUsesForSave = 2;
/// <summary>Minimum percentage (Uses * 100 / ShowCount) an item must have to be saved.</summary>
const int MinPercentageForSave = 2; // 2%
/// <summary>Maximum number of items to save.</summary>
const int MaxSaveItems = 10;
const int MinPercentageForSave = 1;
public static string CacheFilename {
get {
@ -104,7 +103,8 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -104,7 +103,8 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
{
writer.Write(magic);
writer.Write(version);
if (dict.Count < MaxSaveItems) {
int maxSaveItems = CodeCompletionOptions.DataUsageCacheItemCount;
if (dict.Count < maxSaveItems) {
writer.Write(dict.Count);
foreach (KeyValuePair<string, UsageStruct> entry in dict) {
writer.Write(entry.Key);
@ -116,15 +116,15 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -116,15 +116,15 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
List<KeyValuePair<string, UsageStruct>> saveItems = new List<KeyValuePair<string, UsageStruct>>();
foreach (KeyValuePair<string, UsageStruct> entry in dict) {
if (entry.Value.Uses > MinUsesForSave &&
entry.Value.Uses * 100 / entry.Value.ShowCount > MinPercentageForSave)
entry.Value.Uses * 100 / entry.Value.ShowCount >= MinPercentageForSave)
{
saveItems.Add(entry);
}
}
if (saveItems.Count > MaxSaveItems) {
if (saveItems.Count > maxSaveItems) {
saveItems.Sort(new SaveItemsComparer());
}
int count = Math.Min(MaxSaveItems, saveItems.Count);
int count = Math.Min(maxSaveItems, saveItems.Count);
writer.Write(count);
for (int i = 0; i < count; i++) {
KeyValuePair<string, UsageStruct> entry = saveItems[i];
@ -159,6 +159,8 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -159,6 +159,8 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
public static double GetPriority(string dotnetName, bool incrementShowCount)
{
if (!CodeCompletionOptions.DataUsageCacheEnabled)
return 0;
if (dict == null) {
LoadCache();
}
@ -177,6 +179,8 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -177,6 +179,8 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
public static void IncrementUsage(string dotnetName)
{
if (!CodeCompletionOptions.DataUsageCacheEnabled)
return;
if (dict == null) {
LoadCache();
}

8
src/Main/Base/Project/Src/TextEditor/Gui/Editor/SharpDevelopTextAreaControl.cs

@ -241,9 +241,11 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -241,9 +241,11 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
}
try {
foreach (ICodeCompletionBinding ccBinding in CodeCompletionBindings) {
if (ccBinding.HandleKeyPress(this, ch))
return false;
if (ICSharpCode.SharpDevelop.Dom.CodeCompletionOptions.EnableCodeCompletion) {
foreach (ICodeCompletionBinding ccBinding in CodeCompletionBindings) {
if (ccBinding.HandleKeyPress(this, ch))
return false;
}
}
string word = GetWordBeforeCaret();
if (word != null) {

9
src/Main/Base/Project/Src/TextEditor/Gui/Editor/SharpDevelopTextEditorProperties.cs

@ -267,15 +267,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -267,15 +267,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
}
}
public bool EnableCodeCompletion {
get {
return properties.Get("EnableCodeCompletion", true);
}
set {
properties.Set("EnableCodeCompletion", value);
}
}
public BracketMatchingStyle BracketMatchingStyle {
get {
return (BracketMatchingStyle)properties.Get("BracketMatchingStyle", BracketMatchingStyle.After);

72
src/Main/Base/Project/Src/TextEditor/Gui/OptionPanels/CodeCompletionPanel.cs

@ -0,0 +1,72 @@ @@ -0,0 +1,72 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
// <version value="$version"/>
// </file>
using System;
using System.Text;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.OptionPanels
{
public class CodeCompletionPanel : AbstractOptionPanel
{
public override void LoadPanelContents()
{
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("Resources.CodeCompletionOptionPanel.xfrm"));
Get<CheckBox>("codeCompletionEnabled").CheckedChanged += delegate(object sender, EventArgs e) {
ControlDictionary["groupBox"].Enabled = Get<CheckBox>("codeCompletionEnabled").Checked;
};
Get<CheckBox>("codeCompletionEnabled").Checked = CodeCompletionOptions.EnableCodeCompletion;
Get<CheckBox>("useDataUsageCache").CheckedChanged += delegate(object sender, EventArgs e) {
ControlDictionary["dataUsageCacheLabel1"].Enabled = Get<CheckBox>("useDataUsageCache").Checked;
ControlDictionary["dataUsageCacheLabel2"].Enabled = Get<CheckBox>("useDataUsageCache").Checked;
ControlDictionary["dataUsageCacheItemCountNumericUpDown"].Enabled = Get<CheckBox>("useDataUsageCache").Checked;
};
Get<CheckBox>("useDataUsageCache").Checked = CodeCompletionOptions.DataUsageCacheEnabled;
Get<NumericUpDown>("dataUsageCacheItemCount").Value = CodeCompletionOptions.DataUsageCacheItemCount;
ControlDictionary["clearDataUseCacheButton"].Click += delegate(object sender, EventArgs e) {
ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.CodeCompletionDataUsageCache.ResetCache();
};
Get<CheckBox>("useTooltips").CheckedChanged += delegate(object sender, EventArgs e) {
ControlDictionary["useDebugTooltipsOnlyCheckBox"].Enabled = Get<CheckBox>("useTooltips").Checked;
};
Get<CheckBox>("useTooltips").Checked = CodeCompletionOptions.EnableCodeCompletion;
Get<CheckBox>("useDebugTooltipsOnly").Checked = CodeCompletionOptions.TooltipsOnlyWhenDebugging;
Get<CheckBox>("useKeywordCompletion").Checked = CodeCompletionOptions.KeywordCompletionEnabled;
Get<CheckBox>("useInsight").CheckedChanged += delegate(object sender, EventArgs e) {
ControlDictionary["refreshInsightOnCommaCheckBox"].Enabled = Get<CheckBox>("useInsight").Checked;
};
Get<CheckBox>("useInsight").Checked = CodeCompletionOptions.InsightEnabled;
Get<CheckBox>("refreshInsightOnComma").Checked = CodeCompletionOptions.InsightRefreshOnComma;
}
public override bool StorePanelContents()
{
CodeCompletionOptions.EnableCodeCompletion = Get<CheckBox>("codeCompletionEnabled").Checked;
CodeCompletionOptions.DataUsageCacheEnabled = Get<CheckBox>("useDataUsageCache").Checked;
CodeCompletionOptions.DataUsageCacheItemCount = (int)Get<NumericUpDown>("dataUsageCacheItemCount").Value;
CodeCompletionOptions.TooltipsEnabled = Get<CheckBox>("useTooltips").Checked;
CodeCompletionOptions.TooltipsOnlyWhenDebugging = Get<CheckBox>("useDebugTooltipsOnly").Checked;
CodeCompletionOptions.KeywordCompletionEnabled = Get<CheckBox>("useKeywordCompletion").Checked;
CodeCompletionOptions.InsightEnabled = Get<CheckBox>("useInsight").Checked;
CodeCompletionOptions.InsightRefreshOnComma = Get<CheckBox>("refreshInsightOnComma").Checked;
return base.StorePanelContents();
}
}
}

10
src/Main/Base/Project/Src/TextEditor/Gui/OptionPanels/GeneralTextEditorPanel.cs

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Mike Krger" email="mike@icsharpcode.net"/>
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
// <version value="$version"/>
// </file>
@ -65,7 +65,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.OptionPanels @@ -65,7 +65,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.OptionPanels
using (Bitmap newBitmap = new Bitmap(1, 1)) {
using (Graphics g = Graphics.FromImage(newBitmap)) {
using (Font f = new Font(fontFamily, 10)) {
// determine if the length of i == m because I see no other way of
// determine if the length of i == m because I see no other way of
// getting if a font is monospaced or not.
int w1 = (int)g.MeasureString("i.", f).Width;
int w2 = (int)g.MeasureString("mw", f).Width;
@ -78,9 +78,9 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.OptionPanels @@ -78,9 +78,9 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.OptionPanels
public override void LoadPanelContents()
{
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("Resources.GeneralTextEditorPanel.xfrm"));
//
((CheckBox)ControlDictionary["enableDoublebufferingCheckBox"]).Checked = ((Properties)CustomizationObject).Get("DoubleBuffer", true);
((CheckBox)ControlDictionary["enableCodeCompletionCheckBox"]).Checked = ((Properties)CustomizationObject).Get("EnableCodeCompletion", true);
//((CheckBox)ControlDictionary["enableCodeCompletionCheckBox"]).Checked = ((Properties)CustomizationObject).Get("EnableCodeCompletion", true);
((CheckBox)ControlDictionary["enableFoldingCheckBox"]).Checked = ((Properties)CustomizationObject).Get("EnableFolding", true);
((CheckBox)ControlDictionary["showQuickClassBrowserCheckBox"]).Checked = ((Properties)CustomizationObject).Get("ShowQuickClassBrowserPanel", true);
@ -197,7 +197,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.OptionPanels @@ -197,7 +197,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.OptionPanels
((Properties)CustomizationObject).Set("DoubleBuffer", ((CheckBox)ControlDictionary["enableDoublebufferingCheckBox"]).Checked);
((Properties)CustomizationObject).Set("UseAntiAliasFont", ((CheckBox)ControlDictionary["enableAAFontRenderingCheckBox"]).Checked);
((Properties)CustomizationObject).Set("MouseWheelTextZoom", ((CheckBox)ControlDictionary["mouseWheelZoomCheckBox"]).Checked);
((Properties)CustomizationObject).Set("EnableCodeCompletion", ((CheckBox)ControlDictionary["enableCodeCompletionCheckBox"]).Checked);
//((Properties)CustomizationObject).Set("EnableCodeCompletion", ((CheckBox)ControlDictionary["enableCodeCompletionCheckBox"]).Checked);
((Properties)CustomizationObject).Set("EnableFolding", ((CheckBox)ControlDictionary["enableFoldingCheckBox"]).Checked);
((Properties)CustomizationObject).Set("DefaultFont", CurrentFont.ToString());
((Properties)CustomizationObject).Set("Encoding", CharacterEncodings.GetCodePageByIndex(((ComboBox)ControlDictionary["textEncodingComboBox"]).SelectedIndex));

25
src/Main/Core/Project/Src/Services/MessageService/MessageService.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
// <file>
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
@ -49,8 +49,31 @@ namespace ICSharpCode.Core @@ -49,8 +49,31 @@ namespace ICSharpCode.Core
ShowError(null, String.Format(StringParser.Parse(formatstring), formatitems));
}
public delegate void ShowErrorDelegate(Exception ex, string message);
static ShowErrorDelegate customErrorReporter;
/// <summary>
/// Gets/Sets the custom error reporter. If this property is null, a default
/// messagebox is used.
/// </summary>
public static ShowErrorDelegate CustomErrorReporter {
get {
return customErrorReporter;
}
set {
customErrorReporter = value;
}
}
public static void ShowError(Exception ex, string message)
{
if (customErrorReporter != null && ex != null) {
customErrorReporter(ex, message);
return;
}
#if DEBUG
Console.WriteLine();
if (message != null)

69
src/Main/StartUp/Project/Dialogs/ExceptionBox.cs

@ -7,13 +7,13 @@ using System.Reflection; @@ -7,13 +7,13 @@ using System.Reflection;
using System.Drawing;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop
namespace ICSharpCode.SharpDevelop
{
public class ExceptionBox : System.Windows.Forms.Form
{
private System.Windows.Forms.TextBox exceptionTextBox;
private System.Windows.Forms.CheckBox copyErrorCheckBox;
private System.Windows.Forms.CheckBox includeSysInfoCheckBox;
//private System.Windows.Forms.CheckBox includeSysInfoCheckBox;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label;
@ -21,14 +21,16 @@ namespace ICSharpCode.SharpDevelop @@ -21,14 +21,16 @@ namespace ICSharpCode.SharpDevelop
private System.Windows.Forms.Button reportButton;
private System.Windows.Forms.PictureBox pictureBox;
Exception exceptionThrown;
string message;
public ExceptionBox(Exception e)
public ExceptionBox(Exception e, string message)
{
this.exceptionThrown = e;
this.message = message;
InitializeComponent();
RightToLeftConverter.Convert(this);
exceptionTextBox.Text = e.ToString();
exceptionTextBox.Text = getClipboardString();
ResourceManager resources = new ResourceManager("Resources.BitmapResources", Assembly.GetEntryAssembly());
this.pictureBox.Image = (Bitmap)resources.GetObject("ErrorReport");
@ -37,16 +39,18 @@ namespace ICSharpCode.SharpDevelop @@ -37,16 +39,18 @@ namespace ICSharpCode.SharpDevelop
string getClipboardString()
{
string str = "";
if (includeSysInfoCheckBox.Checked) {
str = ".NET Version : " + Environment.Version.ToString() + Environment.NewLine;
str += "OS Version : " + Environment.OSVersion.ToString() + Environment.NewLine;
str += "Boot Mode : " + SystemInformation.BootMode + Environment.NewLine;
str += "Working Set Memory : " + (Environment.WorkingSet / 1024) + "kb" + Environment.NewLine + Environment.NewLine;
Version v = Assembly.GetEntryAssembly().GetName().Version;
str += "SharpDevelop Version : " + v.Major + "." + v.Minor + "." + v.Revision + "." + v.Build + Environment.NewLine;
}
str += ".NET Version : " + Environment.Version.ToString() + Environment.NewLine;
str += "OS Version : " + Environment.OSVersion.ToString() + Environment.NewLine;
str += "Boot Mode : " + SystemInformation.BootMode + Environment.NewLine;
str += "Working Set Memory : " + (Environment.WorkingSet / 1024) + "kb" + Environment.NewLine;
Version v = Assembly.GetEntryAssembly().GetName().Version;
str += "SharpDevelop Version : " + v.Major + "." + v.Minor + "." + v.Revision + "." + v.Build + Environment.NewLine;
str += Environment.NewLine;
str += "Exception thrown: " + Environment.NewLine;
if (message != null) {
str += message + Environment.NewLine;
}
str += "Exception & thrown: " + Environment.NewLine;
str += exceptionThrown.ToString();
return str;
}
@ -60,18 +64,37 @@ namespace ICSharpCode.SharpDevelop @@ -60,18 +64,37 @@ namespace ICSharpCode.SharpDevelop
}
}
// This method is used in the forms designer.
// Change this method on you own risk
void buttonClick(object sender, System.EventArgs e)
{
CopyInfoToClipboard();
// open IE via process.start to our bug reporting forum
Process.Start("http://www.icsharpcode.net/OpenSource/SD/Forum/forum.asp?FORUM_ID=5");
//Process.Start("http://www.icsharpcode.net/OpenSource/SD/Forum/forum.asp?FORUM_ID=5");
string text = "This version of SharpDevelop is an internal build, " +
"not a released version.\n" +
"Please report problems in the internal builds to the " +
"SVN-SharpDevelop-Users mailing list.";
int result = MessageService.ShowCustomDialog("SharpDevelop", text,
"Join the list", "Write mail", "Cancel");
if (result == 0) {
try {
Process.Start("http://www.glengamoi.com/mailman/listinfo/icsharpcode.svn-sharpdevelop-users");
} catch {}
} else if (result == 1) {
// clipboard text is too long to be inserted into the mail-url
string url = "mailto:icsharpcode.svn-sharpdevelop-users@glengamoi.com?subject=Bug Report&body="
+ Uri.EscapeDataString("Write an english description of what you were doing when the" +
"error occured and paste the exception text.");
try {
Process.Start(url);
} catch {}
}
}
void continueButtonClick(object sender, System.EventArgs e)
{
// CopyInfoToClipboard();
DialogResult = System.Windows.Forms.DialogResult.Ignore;
}
@ -82,7 +105,7 @@ namespace ICSharpCode.SharpDevelop @@ -82,7 +105,7 @@ namespace ICSharpCode.SharpDevelop
this.label = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.includeSysInfoCheckBox = new System.Windows.Forms.CheckBox();
//this.includeSysInfoCheckBox = new System.Windows.Forms.CheckBox();
this.copyErrorCheckBox = new System.Windows.Forms.CheckBox();
this.exceptionTextBox = new System.Windows.Forms.TextBox();
this.SuspendLayout();
@ -121,8 +144,8 @@ namespace ICSharpCode.SharpDevelop @@ -121,8 +144,8 @@ namespace ICSharpCode.SharpDevelop
this.label.Size = new System.Drawing.Size(448, 48);
this.label.TabIndex = 6;
this.label.Text = "An unhandled exception has occurred in SharpDevelop. This is unexpected and we\'d " +
"ask you to help us improve SharpDevelop by reporting this error to the SharpDeve" +
"lop team. ";
"ask you to help us improve SharpDevelop by reporting this error to the SharpDeve" +
"lop team. ";
//
// label2
//
@ -142,14 +165,14 @@ namespace ICSharpCode.SharpDevelop @@ -142,14 +165,14 @@ namespace ICSharpCode.SharpDevelop
//
// includeSysInfoCheckBox
//
this.includeSysInfoCheckBox.Checked = true;
/*this.includeSysInfoCheckBox.Checked = true;
this.includeSysInfoCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.includeSysInfoCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.includeSysInfoCheckBox.Location = new System.Drawing.Point(232, 392);
this.includeSysInfoCheckBox.Name = "includeSysInfoCheckBox";
this.includeSysInfoCheckBox.Size = new System.Drawing.Size(440, 24);
this.includeSysInfoCheckBox.TabIndex = 3;
this.includeSysInfoCheckBox.Text = "Include system information (version of Windows, .NET framework)";
this.includeSysInfoCheckBox.Text = "Include system information (version of Windows, .NET framework)";*/
//
// copyErrorCheckBox
//
@ -182,7 +205,7 @@ namespace ICSharpCode.SharpDevelop @@ -182,7 +205,7 @@ namespace ICSharpCode.SharpDevelop
this.Controls.Add(this.label);
this.Controls.Add(this.continueButton);
this.Controls.Add(this.reportButton);
this.Controls.Add(this.includeSysInfoCheckBox);
//this.Controls.Add(this.includeSysInfoCheckBox);
this.Controls.Add(this.copyErrorCheckBox);
this.Controls.Add(this.exceptionTextBox);
this.Controls.Add(this.pictureBox);

26
src/Main/StartUp/Project/SharpDevelopMain.cs

@ -40,16 +40,17 @@ namespace ICSharpCode.SharpDevelop @@ -40,16 +40,17 @@ namespace ICSharpCode.SharpDevelop
static void ShowErrorBox(object sender, ThreadExceptionEventArgs eargs)
{
DialogResult result = new ExceptionBox(eargs.Exception).ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm);
switch (result) {
case DialogResult.Ignore:
break;
case DialogResult.Abort:
ShowErrorBox(eargs.Exception, null);
}
static void ShowErrorBox(Exception exception, string message)
{
using (ExceptionBox box = new ExceptionBox(exception, message)) {
DialogResult result = box.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm);
if (result == DialogResult.Abort) {
Application.Exit();
break;
case DialogResult.Yes:
break;
}
}
}
@ -90,7 +91,7 @@ namespace ICSharpCode.SharpDevelop @@ -90,7 +91,7 @@ namespace ICSharpCode.SharpDevelop
Run(args);
} catch (Exception ex) {
Console.WriteLine(ex);
Application.Run(new ExceptionBox(ex));
Application.Run(new ExceptionBox(ex, "Unhandled exception terminated SharpDevelop"));
}
}
}
@ -118,8 +119,11 @@ namespace ICSharpCode.SharpDevelop @@ -118,8 +119,11 @@ namespace ICSharpCode.SharpDevelop
}
if (!Debugger.IsAttached) {
Application.ThreadException += new ThreadExceptionEventHandler(ShowErrorBox);
Application.ThreadException += ShowErrorBox;
}
#if !DEBUG
MessageService.CustomErrorReporter = ShowErrorBox;
#endif
// TODO:
// bool ignoreDefaultPath = false;

84
src/SharpDevelop.sln

@ -1,5 +1,35 @@ @@ -1,5 +1,35 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# SharpDevelop 2.0.0.219
# SharpDevelop 2.0.0.225
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{5A3EBEBA-0560-41C1-966B-23F7D03A5486}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Tests", "Main\Base\Test\ICSharpCode.SharpDevelop.Tests.csproj", "{4980B743-B32F-4aba-AABD-45E2CAD3568D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartUp", "Main\StartUp\Project\StartUp.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.Tests", "Main\Core\Test\ICSharpCode.Core.Tests.csproj", "{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{9421EDF4-9769-4BE9-B5A6-C87DE221D73C}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.framework.dll", "Tools\NUnit\src\NUnitFramework\framework\nunit.framework.dll.csproj", "{83DD7E12-A705-4DBA-9D71-09C8973D9382}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.core.dll", "Tools\NUnit\src\NUnitFramework\core\nunit.core.dll.csproj", "{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsUI", "Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj", "{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TextEditor", "Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj", "{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactory", "Libraries\NRefactory\Project\NRefactory.csproj", "{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.extensions.dll", "Tools\NUnit\src\NUnitFramework\extensions\nunit.extensions.dll.csproj", "{98B10E98-003C-45A0-9587-119142E39986}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{14A277EE-7DF1-4529-B639-7D1EF334C1C5}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
@ -48,36 +78,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartPage", "AddIns\Misc\St @@ -48,36 +78,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartPage", "AddIns\Misc\St
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddinScout", "AddIns\Misc\AddinScout\Project\AddinScout.csproj", "{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{9421EDF4-9769-4BE9-B5A6-C87DE221D73C}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.framework.dll", "Tools\NUnit\src\NUnitFramework\framework\nunit.framework.dll.csproj", "{83DD7E12-A705-4DBA-9D71-09C8973D9382}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.core.dll", "Tools\NUnit\src\NUnitFramework\core\nunit.core.dll.csproj", "{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsUI", "Libraries\DockPanel_Src\WinFormsUI\WinFormsUI.csproj", "{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TextEditor", "Libraries\ICSharpCode.TextEditor\Project\ICSharpCode.TextEditor.csproj", "{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactory", "Libraries\NRefactory\Project\NRefactory.csproj", "{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunit.extensions.dll", "Tools\NUnit\src\NUnitFramework\extensions\nunit.extensions.dll.csproj", "{98B10E98-003C-45A0-9587-119142E39986}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{5A3EBEBA-0560-41C1-966B-23F7D03A5486}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Tests", "Main\Base\Test\ICSharpCode.SharpDevelop.Tests.csproj", "{4980B743-B32F-4aba-AABD-45E2CAD3568D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StartUp", "Main\StartUp\Project\StartUp.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.Tests", "Main\Core\Test\ICSharpCode.Core.Tests.csproj", "{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -159,6 +159,17 @@ Global @@ -159,6 +159,17 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{1152B71B-3C05-4598-B20D-823B5D40559E} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{2748AD25-9C63-4E12-877B-4DCE96FBED54} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{4980B743-B32F-4aba-AABD-45E2CAD3568D} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{98B10E98-003C-45A0-9587-119142E39986} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{83DD7E12-A705-4DBA-9D71-09C8973D9382} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{CE5B42B7-6E8C-4385-9E97-F4023FC16BF2} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
{4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5}
@ -177,16 +188,5 @@ Global @@ -177,16 +188,5 @@ Global
{B08385CD-F0CC-488C-B4F4-EEB34B6D2688} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C} = {6604365C-C702-4C10-9BA8-637F1E3D4D0D}
{98B10E98-003C-45A0-9587-119142E39986} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{2D18BE89-D210-49EB-A9DD-2246FBB3DF6D} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{D3C782BA-178E-4235-A3BA-8C11DEBB6BEE} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{83DD7E12-A705-4DBA-9D71-09C8973D9382} = {9421EDF4-9769-4BE9-B5A6-C87DE221D73C}
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{1152B71B-3C05-4598-B20D-823B5D40559E} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{2748AD25-9C63-4E12-877B-4DCE96FBED54} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{4980B743-B32F-4aba-AABD-45E2CAD3568D} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
EndGlobalSection
EndGlobal

Loading…
Cancel
Save