Browse Source

"Code Completion when a character is typed" can now be turned off in the options.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2534 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 18 years ago
parent
commit
a8993567c1
  1. 6
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs
  2. 78
      src/Main/Base/Project/Resources/CodeCompletionOptionPanel.xfrm
  3. 45
      src/Main/Base/Project/Src/Services/ParserService/CodeCompletionOptions.cs
  4. 2
      src/Main/Base/Project/Src/TextEditor/Gui/OptionPanels/CodeCompletionPanel.cs
  5. 1
      src/Main/Base/Test/CSharpExpressionFinderTests.cs
  6. 4
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CSharp/ExpressionFinder.cs

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

@ -98,8 +98,10 @@ namespace CSharpBinding @@ -98,8 +98,10 @@ namespace CSharpBinding
TryDeclarationTypeInference(editor, curLine);
}
if (char.IsLetter(ch) || ch == '_') {
if (cursor > 1 && !char.IsLetterOrDigit(editor.Document.GetCharAt(cursor - 1))) {
if ((char.IsLetter(ch) || ch == '_') && CodeCompletionOptions.CompleteWhenTyping) {
if (cursor > 1 && !char.IsLetterOrDigit(editor.Document.GetCharAt(cursor - 1))
&& !IsInComment(editor))
{
ExpressionResult result = ef.FindExpression(editor.Text, cursor - 1);
LoggingService.Debug("CC: Beginning to type a word, result=" + result);
if (result.Context != ExpressionContext.IdentifierExpected) {

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

@ -5,125 +5,133 @@ @@ -5,125 +5,133 @@
<Controls>
<System.Windows.Forms.GroupBox>
<Name value="groupBox" />
<Location value="{X=4,Y=55}" />
<Location value="4, 55" />
<Text value="${res:Dialog.Options.IDEOptions.CodeCompletion.DetailSettings}" />
<Size value="{Width=369, Height=286}" />
<TabIndex value="2" />
<Anchor value="Top, Bottom, Left, Right" />
<Size value="369, 286" />
<TabIndex value="2" />
<Controls>
<System.Windows.Forms.CheckBox>
<Name value="refreshInsightOnCommaCheckBox" />
<Location value="{X=31,Y=186}" />
<Location value="31, 216" />
<Text value="${res:Dialog.Options.IDEOptions.CodeCompletion.RefreshInsightOnComma}" />
<TabIndex value="10" />
<Size value="{Width=332, Height=24}" />
<TabIndex value="11" />
<Size value="332, 32" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.CheckBox>
<Name value="useDebugTooltipsOnlyCheckBox" />
<Location value="{X=31,Y=85}" />
<Location value="31, 85" />
<Text value="${res:Dialog.Options.IDEOptions.CodeCompletion.UseDebugTooltipsOnly}" />
<TabIndex value="6" />
<Size value="{Width=332, Height=24}" />
<Size value="332, 24" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.Button>
<Name value="clearDataUseCacheButton" />
<Location value="{X=225,Y=40}" />
<Location value="225, 40" />
<Text value="${res:Dialog.Options.IDEOptions.CodeCompletion.ClearCache}" />
<Size value="{Width=101, Height=23}" />
<Size value="101, 23" />
<TabIndex value="4" />
</System.Windows.Forms.Button>
<System.Windows.Forms.CheckBox>
<Name value="useTooltipsCheckBox" />
<Location value="{X=12,Y=66}" />
<Location value="12, 66" />
<Checked value="True" />
<CheckState value="Checked" />
<Text value="${res:Dialog.Options.IDEOptions.CodeCompletion.UseTooltips}" />
<TabIndex value="5" />
<Size value="{Width=351, Height=24}" />
<Size value="351, 24" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.CheckBox>
<Name value="useInsightCheckBox" />
<Location value="{X=12,Y=167}" />
<Location value="12, 197" />
<Checked value="True" />
<CheckState value="Checked" />
<Text value="${res:Dialog.Options.IDEOptions.CodeCompletion.UseInsight}" />
<TabIndex value="9" />
<Size value="{Width=351, Height=24}" />
<TabIndex value="10" />
<Size value="351, 24" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.Label>
<Name value="label4" />
<Location value="{X=6,Y=112}" />
<Location value="6, 112" />
<Text value="${res:Dialog.Options.IDEOptions.CodeCompletion.LanguageDependend}" />
<Size value="{Width=357, Height=31}" />
<TabIndex value="7" />
<Anchor value="Top, Left, Right" />
<Size value="357, 31" />
<TabIndex value="7" />
</System.Windows.Forms.Label>
<System.Windows.Forms.CheckBox>
<Name value="completeWhenTypingCheckBox" />
<Location value="12, 155" />
<Text value="${res:Dialog.Options.IDEOptions.CodeCompletion.CompleteWhenTyping}" />
<TabIndex value="8" />
<Size value="351, 24" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.CheckBox>
<Name value="useKeywordCompletionCheckBox" />
<Location value="{X=12,Y=146}" />
<Location value="12, 176" />
<Text value="${res:Dialog.Options.IDEOptions.CodeCompletion.UseKeywordCompletion}" />
<TabIndex value="8" />
<Size value="{Width=351, Height=24}" />
<TabIndex value="9" />
<Size value="351, 24" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
<System.Windows.Forms.Label>
<Name value="dataUsageCacheLabel2" />
<Location value="{X=154,Y=42}" />
<Location value="154, 42" />
<Text value="${res:Dialog.Options.IDEOptions.CodeCompletion.SaveItemCountAfterNumber}" />
<TextAlign value="MiddleLeft" />
<Size value="{Width=65, Height=23}" />
<Size value="65, 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}" />
<Maximum value="10000" />
<Size value="68, 20" />
<Location value="80, 42" />
</System.Windows.Forms.NumericUpDown>
<System.Windows.Forms.Label>
<Name value="dataUsageCacheLabel1" />
<Location value="{X=18,Y=42}" />
<Location value="18, 42" />
<Text value="${res:Dialog.Options.IDEOptions.CodeCompletion.SaveItemCountBeforeNumber}" />
<TextAlign value="MiddleRight" />
<Size value="{Width=56, Height=21}" />
<Size value="56, 21" />
<TabIndex value="1" />
</System.Windows.Forms.Label>
<System.Windows.Forms.CheckBox>
<Name value="useDataUsageCacheCheckBox" />
<Location value="{X=12,Y=20}" />
<Location value="12, 20" />
<Checked value="True" />
<CheckState value="Checked" />
<Text value="${res:Dialog.Options.IDEOptions.CodeCompletion.UseDataUsageCache}" />
<TabIndex value="0" />
<Size value="{Width=351, Height=24}" />
<Size value="351, 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}" />
<Location value="8, 8" />
<Text value="${res:Dialog.Options.IDEOptions.CodeCompletion.MainOption}" />
<Anchor value="Top, Left, Right" />
<TextAlign value="MiddleLeft" />
<Size value="{Width=365, Height=22}" />
<Size value="365, 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}" />
<Location value="16, 25" />
<Text value="${res:Dialog.Options.IDEOptions.TextEditor.General.CodeCompletionCheckBox}" />
<TabIndex value="1" />
<Size value="{Width=357, Height=24}" />
<Size value="357, 24" />
<Anchor value="Top, Left, Right" />
</System.Windows.Forms.CheckBox>
</Controls>

45
src/Main/Base/Project/Src/Services/ParserService/CodeCompletionOptions.cs

@ -51,48 +51,33 @@ namespace ICSharpCode.SharpDevelop @@ -51,48 +51,33 @@ namespace ICSharpCode.SharpDevelop
}
public static bool TooltipsEnabled {
get {
return properties.Get("TooltipsEnabled", true);
}
set {
properties.Set("TooltipsEnabled", value);
}
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);
}
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);
}
get { return properties.Get("KeywordCompletionEnabled", true); }
set { properties.Set("KeywordCompletionEnabled", value); }
}
public static bool CompleteWhenTyping {
get { return properties.Get("CompleteWhenTyping", true); }
set { properties.Set("CompleteWhenTyping", value); }
}
public static bool InsightEnabled {
get {
return properties.Get("InsightEnabled", true);
}
set {
properties.Set("InsightEnabled", value);
}
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);
}
get { return properties.Get("InsightRefreshOnComma", true); }
set { properties.Set("InsightRefreshOnComma", value); }
}
}
}

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

@ -43,6 +43,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.OptionPanels @@ -43,6 +43,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.OptionPanels
Get<CheckBox>("useDebugTooltipsOnly").Checked = CodeCompletionOptions.TooltipsOnlyWhenDebugging;
Get<CheckBox>("completeWhenTyping").Checked = CodeCompletionOptions.CompleteWhenTyping;
Get<CheckBox>("useKeywordCompletion").Checked = CodeCompletionOptions.KeywordCompletionEnabled;
Get<CheckBox>("useInsight").CheckedChanged += delegate(object sender, EventArgs e) {
@ -60,6 +61,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.OptionPanels @@ -60,6 +61,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.OptionPanels
CodeCompletionOptions.DataUsageCacheItemCount = (int)Get<NumericUpDown>("dataUsageCacheItemCount").Value;
CodeCompletionOptions.TooltipsEnabled = Get<CheckBox>("useTooltips").Checked;
CodeCompletionOptions.TooltipsOnlyWhenDebugging = Get<CheckBox>("useDebugTooltipsOnly").Checked;
CodeCompletionOptions.CompleteWhenTyping = Get<CheckBox>("completeWhenTyping").Checked;
CodeCompletionOptions.KeywordCompletionEnabled = Get<CheckBox>("useKeywordCompletion").Checked;
CodeCompletionOptions.InsightEnabled = Get<CheckBox>("useInsight").Checked;
CodeCompletionOptions.InsightRefreshOnComma = Get<CheckBox>("refreshInsightOnComma").Checked;

1
src/Main/Base/Test/CSharpExpressionFinderTests.cs

@ -137,7 +137,6 @@ class Main { @@ -137,7 +137,6 @@ class Main {
}
[Test]
[Ignore("Context inside methods not yet implemented")]
public void IdentifierBeforeKeyword()
{
FindFull(program2, "arName", "varName", ExpressionContext.IdentifierExpected);

4
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CSharp/ExpressionFinder.cs

@ -419,7 +419,9 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -419,7 +419,9 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
frame.childType = FrameType.Property;
}
frame.SetContext(ExpressionContext.IdentifierExpected);
} else if (frame.type == FrameType.ParameterList) {
} else if (frame.type == FrameType.ParameterList
|| frame.type == FrameType.Statements)
{
frame.SetContext(ExpressionContext.IdentifierExpected);
}
}

Loading…
Cancel
Save