Browse Source

"throw new" now only shows types deriving from Exception.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1673 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
05acdf817f
  1. 2
      src/AddIns/BackendBindings/Boo/BooBinding/Test/ResolverTests.cs
  2. 3
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Parser/ExpressionFinder.cs
  3. 7
      src/AddIns/BackendBindings/CSharpBinding/Test/ExpressionFinder.cs
  4. 24
      src/Main/Base/Project/Src/Services/ParserService/ParserService.cs
  5. 2
      src/Main/Base/Project/Src/TextEditor/Actions.cs

2
src/AddIns/BackendBindings/Boo/BooBinding/Test/ResolverTests.cs

@ -52,7 +52,7 @@ namespace Grunwald.BooBinding.Tests @@ -52,7 +52,7 @@ namespace Grunwald.BooBinding.Tests
{
DefaultProjectContent pc = new DefaultProjectContent();
lastPC = pc;
ProjectContentRegistry.CurrentProjectContent = pc;
HostCallback.GetCurrentProjectContent = delegate { return pc; };
pc.ReferencedContents.Add(ProjectContentRegistry.Mscorlib);
pc.ReferencedContents.Add(ProjectContentRegistry.GetProjectContentForReference("System.Windows.Forms", "System.Windows.Forms"));
pc.ReferencedContents.Add(booLangPC);

3
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Parser/ExpressionFinder.cs

@ -95,8 +95,7 @@ namespace CSharpBinding.Parser @@ -95,8 +95,7 @@ namespace CSharpBinding.Parser
}
} else {
UnGet();
ReadNextToken();
if (curTokenType == Ident && lastIdentifier == "throw") {
if (ReadIdentifier(GetNextNonWhiteSpace()) == "throw") {
return ExpressionContext.TypeDerivingFrom(ParserService.CurrentProjectContent.GetClass("System.Exception"), true);
}
}

7
src/AddIns/BackendBindings/CSharpBinding/Test/ExpressionFinder.cs

@ -37,6 +37,7 @@ class Main { @@ -37,6 +37,7 @@ class Main {
foreach (TypeName varName in ((CastTo)castTarget).PropertyOnCastExpression) {
}
throw new NotFoundException();
}
}";
@ -127,5 +128,11 @@ class Main { @@ -127,5 +128,11 @@ class Main {
{
FindFull(program2, "arName", "varName", ExpressionContext.Default);
}
[Test]
public void NewException()
{
FindFull(program2, "otFoundException", "NotFoundException()", ExpressionContext.TypeDerivingFrom(ProjectContentRegistry.Mscorlib.GetClass("System.Exception"), true));
}
}
}

24
src/Main/Base/Project/Src/Services/ParserService/ParserService.cs

@ -423,19 +423,21 @@ namespace ICSharpCode.Core @@ -423,19 +423,21 @@ namespace ICSharpCode.Core
defaultProjectContent.ReferencedContents.Add(pc);
}
}
WorkbenchSingleton.Workbench.ActiveWorkbenchWindowChanged += delegate {
if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow != null) {
string file = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ViewContent.FileName
?? WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ViewContent.UntitledName;
if (file != null) {
IParser parser = GetParser(file);
if (parser != null && parser.Language != null) {
defaultProjectContent.Language = parser.Language;
defaultProjectContent.DefaultImports = parser.Language.CreateDefaultImports(defaultProjectContent);
if (WorkbenchSingleton.Workbench != null) {
WorkbenchSingleton.Workbench.ActiveWorkbenchWindowChanged += delegate {
if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow != null) {
string file = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ViewContent.FileName
?? WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ViewContent.UntitledName;
if (file != null) {
IParser parser = GetParser(file);
if (parser != null && parser.Language != null) {
defaultProjectContent.Language = parser.Language;
defaultProjectContent.DefaultImports = parser.Language.CreateDefaultImports(defaultProjectContent);
}
}
}
}
};
};
}
}
public static ParseInformation ParseFile(string fileName, string fileContent, bool updateCommentTags, bool fireUpdate)

2
src/Main/Base/Project/Src/TextEditor/Actions.cs

@ -78,7 +78,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Actions @@ -78,7 +78,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Actions
if (pos.Position.IsEmpty)
FileService.OpenFile(pos.FileName);
else
FileService.JumpToFilePosition(pos.FileName, pos.Position.X - 1, pos.Position.Y - 1);
FileService.JumpToFilePosition(pos.FileName, pos.Line - 1, pos.Column - 1);
} catch (Exception ex) {
MessageService.ShowError(ex, "Error jumping to '" + pos.FileName + "'.");
}

Loading…
Cancel
Save