Browse Source

fixed code completion in first parameter

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/vbnet@6134 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Siegfried Pammer 16 years ago
parent
commit
0a4557c9a1
  1. 6
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs
  2. 1425
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.atg
  3. 2
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.cs
  4. 1405
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Parser.cs
  5. 12
      src/Libraries/NRefactory/Project/Src/Lexer/VBNet/PushParser.frame
  6. 2
      src/Main/Base/Test/VBExpressionFinderTests.cs
  7. 2
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetExpressionFinder.cs

6
src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs

@ -215,10 +215,8 @@ namespace ICSharpCode.VBNetBinding @@ -215,10 +215,8 @@ namespace ICSharpCode.VBNetBinding
VBNetExpressionFinder ef = new VBNetExpressionFinder(ParserService.GetParseInformation(editor.FileName));
ExpressionResult result = ef.FindExpression(editor.Document.Text, cursor);
LoggingService.Debug("CC: Beginning to type a word, result=" + result + ", context=" + result.Context);
if (result.Context != ExpressionContext.IdentifierExpected) {
editor.ShowCompletionWindow(CompletionDataHelper.GenerateCompletionData(result, editor, ' '));
return true;
}
editor.ShowCompletionWindow(CompletionDataHelper.GenerateCompletionData(result, editor, ' '));
return true;
}
return false;

1425
src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.atg

File diff suppressed because it is too large Load Diff

2
src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.cs

@ -103,6 +103,8 @@ namespace ICSharpCode.NRefactory.Parser.VB @@ -103,6 +103,8 @@ namespace ICSharpCode.NRefactory.Parser.VB
identifierExpected = true;
if (la != null)
CurrentBlock.lastExpressionStart = la.Location;
else if (t != null)
CurrentBlock.lastExpressionStart = t.EndLocation;
}
public bool InContext(Context expected)

1405
src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Parser.cs

File diff suppressed because it is too large Load Diff

12
src/Libraries/NRefactory/Project/Src/Lexer/VBNet/PushParser.frame

@ -67,11 +67,13 @@ partial class ExpressionFinder { @@ -67,11 +67,13 @@ partial class ExpressionFinder {
public void InformToken(Token la)
{
nextTokenIsPotentialStartOfExpression = false;
readXmlIdentifier = false;
nextTokenIsStartOfImportsOrAccessExpression = false;
identifierExpected = false;
wasQualifierTokenAtStart = false;
if (la != null) {
nextTokenIsPotentialStartOfExpression = false;
readXmlIdentifier = false;
nextTokenIsStartOfImportsOrAccessExpression = false;
identifierExpected = false;
wasQualifierTokenAtStart = false;
}
-->informToken
if (la != null) t = la;
}

2
src/Main/Base/Test/VBExpressionFinderTests.cs

@ -154,7 +154,7 @@ End Module", "(", 1, "", ExpressionContext.Parameter); @@ -154,7 +154,7 @@ End Module", "(", 1, "", ExpressionContext.Parameter);
ContextTest(program4, "Dim ", "Dim".Length, ExpressionContext.MethodBody);
}
[Test, Ignore]
[Test]
public void ContextInModule()
{
ContextTest(@"Module Test

2
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetExpressionFinder.cs

@ -81,8 +81,6 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -81,8 +81,6 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
try {
expectedSet = p.GetExpectedSet();
if (p.IsMissingModifier)
expectedSet.Set(Tokens.Identifier, false);
} catch (InvalidOperationException) {
expectedSet = null;
}

Loading…
Cancel
Save