Browse Source

Mark ParseInformation.*CompilationUnit as obsolete.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@4742 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
719d16891e
  1. 2
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/BooAdvancedHighlighter.cs
  2. 6
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/BooResolver.cs
  3. 2
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/Designer/BooDesignerLoader.cs
  4. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs
  5. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs
  6. 8
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerGenerator.cs
  7. 7
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonResolver.cs
  8. 12
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/CompletionDataHelper.cs
  9. 2
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCodeCompletionBinding.cs
  10. 2
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCompletionItemList.cs
  11. 11
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlContext.cs
  12. 10
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlResolver.cs
  13. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/IconBarManager.cs
  14. 6
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/AbstractDesignerGenerator.cs
  15. 2
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerLoader/NRefactoryDesignerLoader.cs
  16. 2
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs
  17. 2
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/SecondaryDisplayBinding.cs
  18. 2
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/ProjectResourcesMemberCodeDomSerializer.cs
  19. 2
      src/AddIns/Misc/SharpRefactoring/Src/MethodExtractorBase.cs
  20. 3
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Xml/AXmlParser.cs
  21. 3
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  22. 2
      src/Main/Base/Project/Src/Editor/CodeCompletion/OverrideCompletionItemProvider.cs
  23. 2
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ProjectNode.cs
  24. 4
      src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs
  25. 2
      src/Main/Base/Project/Src/Services/RefactoringService/FindReferencesAndRenameHelper.cs
  26. 2
      src/Main/Base/Project/Src/Services/RefactoringService/NamespaceRefactoringService.cs
  27. 2
      src/Main/Base/Project/Src/Services/RefactoringService/RefactoringMenuBuilder.cs
  28. 2
      src/Main/Base/Project/Src/TextEditor/Commands/GenerateCodeCommand.cs
  29. 10
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/ParserFoldingStrategy.cs
  30. 532
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/QuickClassBrowserPanel.cs
  31. 77
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/SharpDevelopTextAreaControl.cs
  32. 4
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CSharp/ExpressionFinder.cs
  33. 2
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ClassFinder.cs
  34. 2
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs
  35. 4
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ProjectContent/ParseInformation.cs
  36. 2
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Refactoring/NRefactoryRefactoringProvider.cs
  37. 6
      src/Main/ICSharpCode.SharpDevelop.Sda/Src/ExceptionBox.cs

2
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/BooAdvancedHighlighter.cs

@ -77,7 +77,7 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -77,7 +77,7 @@ namespace Grunwald.BooBinding.CodeCompletion
if (parseInfo == null && this.declarations == null)
parseInfo = ParserService.GetParseInformation(this.TextEditor.FileName);
if (parseInfo != null) {
ICompilationUnit cu = parseInfo.MostRecentCompilationUnit;
ICompilationUnit cu = parseInfo.CompilationUnit;
CompileUnit booCu = cu.Tag as CompileUnit;
if (booCu != null) {
FindAssignmentsVisitor visitor = new FindAssignmentsVisitor();

6
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/BooResolver.cs

@ -82,7 +82,7 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -82,7 +82,7 @@ namespace Grunwald.BooBinding.CodeCompletion
if (parseInfo == null) {
return false;
}
this.cu = parseInfo.MostRecentCompilationUnit;
this.cu = parseInfo.CompilationUnit;
if (cu == null) {
return false;
}
@ -92,8 +92,8 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -92,8 +92,8 @@ namespace Grunwald.BooBinding.CodeCompletion
this.callingClass = GetCallingClass(pc);
callingMember = ResolveCurrentMember(callingClass);
if (callingMember == null) {
if (cu != parseInfo.BestCompilationUnit) {
IClass olderClass = GetCallingClass(parseInfo.BestCompilationUnit.ProjectContent);
if (cu != parseInfo.CompilationUnit) {
IClass olderClass = GetCallingClass(parseInfo.CompilationUnit.ProjectContent);
if (olderClass != null && callingClass == null) {
this.callingClass = olderClass;
}

2
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/Designer/BooDesignerLoader.cs

@ -60,7 +60,7 @@ namespace Grunwald.BooBinding.Designer @@ -60,7 +60,7 @@ namespace Grunwald.BooBinding.Designer
Console.WriteLine(module.ToCodeString());
#endif
CodeDomVisitor visitor = new CodeDomVisitor(parseInfo.MostRecentCompilationUnit.ProjectContent);
CodeDomVisitor visitor = new CodeDomVisitor(parseInfo.CompilationUnit.ProjectContent);
module.Accept(visitor);
#if DEBUG

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

@ -171,7 +171,7 @@ namespace CSharpBinding @@ -171,7 +171,7 @@ namespace CSharpBinding
ParseInformation parseInfo = ParserService.GetParseInformation(editor.FileName);
if (parseInfo != null) {
IClass innerMostClass = parseInfo.MostRecentCompilationUnit.GetInnermostClass(editor.Caret.Line, editor.Caret.Column);
IClass innerMostClass = parseInfo.CompilationUnit.GetInnermostClass(editor.Caret.Line, editor.Caret.Column);
if (innerMostClass == null) {
new CtrlSpaceCompletionItemProvider(ExpressionContext.Namespace).ShowCompletion(editor);
return true;

2
src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs

@ -193,7 +193,7 @@ namespace CSharpBinding.FormattingStrategy @@ -193,7 +193,7 @@ namespace CSharpBinding.FormattingStrategy
if (fileName != null && fileName.Length > 0 ) {
ParseInformation parseInfo = ParserService.ParseFile(fileName, editor.Document.CreateSnapshot());
if (parseInfo != null) {
ICompilationUnit currentCompilationUnit = parseInfo.BestCompilationUnit;
ICompilationUnit currentCompilationUnit = parseInfo.CompilationUnit;
if (currentCompilationUnit != null) {
IClass currentClass = currentCompilationUnit.GetInnermostClass(caretLine, 0);
int nextElementLine = int.MaxValue;

8
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonDesignerGenerator.cs

@ -78,7 +78,7 @@ namespace ICSharpCode.PythonBinding @@ -78,7 +78,7 @@ namespace ICSharpCode.PythonBinding
public void MergeRootComponentChanges(IComponent component, IResourceService resourceService)
{
ParseInformation parseInfo = ParseFile();
Merge(component, ViewContent.DesignerCodeFileDocument, parseInfo.BestCompilationUnit, textEditorProperties, resourceService);
Merge(component, ViewContent.DesignerCodeFileDocument, parseInfo.CompilationUnit, textEditorProperties, resourceService);
}
/// <summary>
@ -160,7 +160,7 @@ namespace ICSharpCode.PythonBinding @@ -160,7 +160,7 @@ namespace ICSharpCode.PythonBinding
// Look at the form's methods and see which are compatible.
ArrayList methods = new ArrayList();
IClass c = GetClass(parseInfo.BestCompilationUnit);
IClass c = GetClass(parseInfo.CompilationUnit);
foreach (IMethod method in c.Methods) {
if (method.Parameters.Count == 2) {
methods.Add(method.Name);
@ -175,7 +175,7 @@ namespace ICSharpCode.PythonBinding @@ -175,7 +175,7 @@ namespace ICSharpCode.PythonBinding
/// </summary>
public static IMethod GetInitializeComponents(ParseInformation parseInfo)
{
return GetInitializeComponents(parseInfo.BestCompilationUnit);
return GetInitializeComponents(parseInfo.CompilationUnit);
}
/// <summary>
@ -278,7 +278,7 @@ namespace ICSharpCode.PythonBinding @@ -278,7 +278,7 @@ namespace ICSharpCode.PythonBinding
int GetExistingEventHandler(string methodName)
{
ParseInformation parseInfo = ParseFile();
IClass c = GetClass(parseInfo.BestCompilationUnit);
IClass c = GetClass(parseInfo.CompilationUnit);
foreach (IMethod method in c.Methods) {
if ((method.Name == methodName) && (method.Parameters.Count == 2)) {
return method.Region.BeginLine;

7
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonResolver.cs

@ -53,7 +53,7 @@ namespace ICSharpCode.PythonBinding @@ -53,7 +53,7 @@ namespace ICSharpCode.PythonBinding
}
// Search for a local variable.
LocalResolveResult localResolveResult = GetLocalVariable(expressionResult.Expression, parseInfo.BestCompilationUnit.FileName, fileContent);
LocalResolveResult localResolveResult = GetLocalVariable(expressionResult.Expression, parseInfo.CompilationUnit.FileName, fileContent);
if (localResolveResult != null) {
return localResolveResult;
}
@ -94,10 +94,7 @@ namespace ICSharpCode.PythonBinding @@ -94,10 +94,7 @@ namespace ICSharpCode.PythonBinding
ICompilationUnit GetCompilationUnit(ParseInformation parseInfo, bool mostRecent)
{
if (parseInfo != null) {
if (mostRecent) {
return parseInfo.MostRecentCompilationUnit;
}
return parseInfo.BestCompilationUnit;
return parseInfo.CompilationUnit;
}
return null;
}

12
src/AddIns/BackendBindings/XamlBinding/XamlBinding/CompletionDataHelper.cs

@ -226,7 +226,7 @@ namespace ICSharpCode.XamlBinding @@ -226,7 +226,7 @@ namespace ICSharpCode.XamlBinding
ElementWrapper lastElement = context.ActiveElement;
if (context.ParseInformation == null)
return emptyList;
XamlCompilationUnit cu = context.ParseInformation.BestCompilationUnit as XamlCompilationUnit;
XamlCompilationUnit cu = context.ParseInformation.CompilationUnit as XamlCompilationUnit;
if (cu == null)
return emptyList;
IReturnType rt = cu.CreateType(lastElement.Namespace, lastElement.LocalName.Trim('.'));
@ -346,7 +346,7 @@ namespace ICSharpCode.XamlBinding @@ -346,7 +346,7 @@ namespace ICSharpCode.XamlBinding
if (context.ParseInformation == null)
return emptyList;
XamlCompilationUnit cu = context.ParseInformation.BestCompilationUnit as XamlCompilationUnit;
XamlCompilationUnit cu = context.ParseInformation.CompilationUnit as XamlCompilationUnit;
IReturnType rt = null;
@ -1086,7 +1086,7 @@ namespace ICSharpCode.XamlBinding @@ -1086,7 +1086,7 @@ namespace ICSharpCode.XamlBinding
if (context.ParseInformation == null)
return null;
XamlCompilationUnit cu = context.ParseInformation.BestCompilationUnit as XamlCompilationUnit;
XamlCompilationUnit cu = context.ParseInformation.CompilationUnit as XamlCompilationUnit;
if (cu == null)
return null;
string prefix = "";
@ -1110,7 +1110,7 @@ namespace ICSharpCode.XamlBinding @@ -1110,7 +1110,7 @@ namespace ICSharpCode.XamlBinding
if (context.ParseInformation == null)
yield break;
var unit = context.ParseInformation.MostRecentCompilationUnit;
var unit = context.ParseInformation.CompilationUnit;
var loc = context.Editor.Caret.Position;
IClass c = unit.GetInnermostClass(loc.Line, loc.Column);
if (c == null)
@ -1147,7 +1147,7 @@ namespace ICSharpCode.XamlBinding @@ -1147,7 +1147,7 @@ namespace ICSharpCode.XamlBinding
if (context.ParseInformation == null)
return result;
IProjectContent pc = context.ParseInformation.BestCompilationUnit.ProjectContent;
IProjectContent pc = context.ProjectContent;
foreach (var ns in context.XmlnsDefinitions) {
result.Add(ns.Key, XamlCompilationUnit.GetNamespaceMembers(pc, ns.Value));
@ -1221,7 +1221,7 @@ namespace ICSharpCode.XamlBinding @@ -1221,7 +1221,7 @@ namespace ICSharpCode.XamlBinding
if (context.ParseInformation == null)
return result;
IProjectContent pc = context.ParseInformation.BestCompilationUnit.ProjectContent;
IProjectContent pc = context.ProjectContent;
if (!string.IsNullOrEmpty(prefixClassName)) {
var ns = context.XmlnsDefinitions[prefixNamespace];

2
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCodeCompletionBinding.cs

@ -236,7 +236,7 @@ namespace ICSharpCode.XamlBinding @@ -236,7 +236,7 @@ namespace ICSharpCode.XamlBinding
if (context.Attribute.Prefix.Equals("xmlns", StringComparison.OrdinalIgnoreCase) ||
context.Attribute.Name.Equals("xmlns", StringComparison.OrdinalIgnoreCase))
completionList.Items.AddRange(CompletionDataHelper.CreateListForXmlnsCompletion(context.ParseInformation.BestCompilationUnit.ProjectContent));
completionList.Items.AddRange(CompletionDataHelper.CreateListForXmlnsCompletion(context.ProjectContent));
ICompletionListWindow window = editor.ShowCompletionWindow(completionList);

2
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCompletionItemList.cs

@ -135,7 +135,7 @@ namespace ICSharpCode.XamlBinding @@ -135,7 +135,7 @@ namespace ICSharpCode.XamlBinding
static bool CreateEventHandlerCode(CompletionContext context, NewEventCompletionItem completionItem, out int discriminator)
{
ParseInformation p = ParserService.GetParseInformation(context.Editor.FileName);
var unit = p.MostRecentCompilationUnit;
var unit = p.CompilationUnit;
var loc = context.Editor.Document.OffsetToPosition(context.StartOffset);
IClass c = unit.GetInnermostClass(loc.Line, loc.Column);

11
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlContext.cs

@ -20,6 +20,8 @@ using ICSharpCode.XmlEditor; @@ -20,6 +20,8 @@ using ICSharpCode.XmlEditor;
namespace ICSharpCode.XamlBinding
{
// Fetch a copy of all relevant values of the AXmlDocument so that XamlContext can be used
// without having to acquire the reader lock.
public class ElementWrapper {
public ElementWrapper(AXmlElement element)
{
@ -111,6 +113,15 @@ namespace ICSharpCode.XamlBinding @@ -111,6 +113,15 @@ namespace ICSharpCode.XamlBinding
public bool InRoot { get; set; }
public ReadOnlyCollection<string> IgnoredXmlns { get; set; }
public IProjectContent ProjectContent {
get {
if (ParseInformation != null)
return ParseInformation.CompilationUnit.ProjectContent;
else
return null;
}
}
public XamlContext() {}
public bool InAttributeValueOrMarkupExtension {

10
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlResolver.cs

@ -37,8 +37,8 @@ namespace ICSharpCode.XamlBinding @@ -37,8 +37,8 @@ namespace ICSharpCode.XamlBinding
this.resolveExpression = expressionResult.Expression;
this.caretLine = expressionResult.Region.BeginLine;
this.caretColumn = expressionResult.Region.BeginColumn;
this.callingClass = parseInfo.BestCompilationUnit.GetInnermostClass(caretLine, caretColumn);
this.context = expressionResult.Context as XamlContext ?? CompletionDataHelper.ResolveContext(fileContent, parseInfo.MostRecentCompilationUnit.FileName, Utils.GetOffsetFromFilePos(fileContent, caretLine, caretColumn));
this.callingClass = parseInfo.CompilationUnit.GetInnermostClass(caretLine, caretColumn);
this.context = expressionResult.Context as XamlContext ?? CompletionDataHelper.ResolveContext(fileContent, parseInfo.CompilationUnit.FileName, Utils.GetOffsetFromFilePos(fileContent, caretLine, caretColumn));
switch (this.context.Description) {
case XamlContextDescription.AtTag:
@ -137,7 +137,7 @@ namespace ICSharpCode.XamlBinding @@ -137,7 +137,7 @@ namespace ICSharpCode.XamlBinding
return ResolveProperty(xmlNamespace, name, propertyName, true);
}
else {
IProjectContent pc = context.ParseInformation.BestCompilationUnit.ProjectContent;
IProjectContent pc = context.ProjectContent;
IReturnType resolvedType = XamlCompilationUnit.FindType(pc, xmlNamespace, name);
IClass resolvedClass = resolvedType != null ? resolvedType.GetUnderlyingClass() : null;
if (resolvedClass != null) {
@ -151,7 +151,7 @@ namespace ICSharpCode.XamlBinding @@ -151,7 +151,7 @@ namespace ICSharpCode.XamlBinding
MemberResolveResult ResolveProperty(string xmlNamespace, string className, string propertyName, bool allowAttached)
{
IProjectContent pc = context.ParseInformation.BestCompilationUnit.ProjectContent;
IProjectContent pc = context.ProjectContent;
IReturnType resolvedType = XamlCompilationUnit.FindType(pc, xmlNamespace, className);
if (resolvedType != null && resolvedType.GetUnderlyingClass() != null) {
var result = ResolvePropertyName(resolvedType, propertyName, allowAttached);
@ -270,7 +270,7 @@ namespace ICSharpCode.XamlBinding @@ -270,7 +270,7 @@ namespace ICSharpCode.XamlBinding
resolver.resolveExpression = expression;
resolver.caretLine = expressionResult.Region.BeginLine;
resolver.caretColumn = expressionResult.Region.BeginColumn;
resolver.callingClass = context.ParseInformation.BestCompilationUnit.GetInnermostClass(resolver.caretLine, resolver.caretColumn);
resolver.callingClass = context.ParseInformation.CompilationUnit.GetInnermostClass(resolver.caretLine, resolver.caretColumn);
resolver.context = context;
return resolver.ResolveNamedAttribute(expression);

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/IconBarManager.cs

@ -52,7 +52,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -52,7 +52,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
}
if (parseInfo == null)
return;
foreach (IClass c in parseInfo.MostRecentCompilationUnit.Classes) {
foreach (IClass c in parseInfo.CompilationUnit.Classes) {
AddClassMemberBookmarks(c);
}
}

6
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/AbstractDesignerGenerator.cs

@ -74,7 +74,7 @@ namespace ICSharpCode.FormsDesigner @@ -74,7 +74,7 @@ namespace ICSharpCode.FormsDesigner
{
// get new initialize components
ParseInformation info = ParserService.ParseFile(this.viewContent.PrimaryFileName, this.viewContent.PrimaryFileContent);
ICompilationUnit cu = info.BestCompilationUnit;
ICompilationUnit cu = info.CompilationUnit;
foreach (IClass c in cu.Classes) {
if (FormsDesignerSecondaryDisplayBinding.BaseClassIsFormOrControl(c)) {
this.currentClassPart = c;
@ -388,7 +388,7 @@ namespace ICSharpCode.FormsDesigner @@ -388,7 +388,7 @@ namespace ICSharpCode.FormsDesigner
// Update currentClassPart from PrimaryFile
this.currentClassPart = null;
if (this.ViewContent.PrimaryFile != null && parsings.TryGetValue(this.ViewContent.PrimaryFile, out info)) {
cu = info.BestCompilationUnit;
cu = info.CompilationUnit;
foreach (IClass c in cu.Classes) {
if (FormsDesignerSecondaryDisplayBinding.BaseClassIsFormOrControl(c)) {
if (FormsDesignerSecondaryDisplayBinding.GetInitializeComponents(c) != null) {
@ -418,7 +418,7 @@ namespace ICSharpCode.FormsDesigner @@ -418,7 +418,7 @@ namespace ICSharpCode.FormsDesigner
return;
}
cu = info.BestCompilationUnit;
cu = info.CompilationUnit;
foreach (IClass c in cu.Classes) {
if (FormsDesignerSecondaryDisplayBinding.BaseClassIsFormOrControl(c)) {
this.initializeComponents = FormsDesignerSecondaryDisplayBinding.GetInitializeComponents(c);

2
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerLoader/NRefactoryDesignerLoader.cs

@ -49,7 +49,7 @@ namespace ICSharpCode.FormsDesigner @@ -49,7 +49,7 @@ namespace ICSharpCode.FormsDesigner
formClass = null;
isFirstClassInFile = true;
foreach (IClass c in parseInfo.BestCompilationUnit.Classes) {
foreach (IClass c in parseInfo.CompilationUnit.Classes) {
if (FormsDesignerSecondaryDisplayBinding.BaseClassIsFormOrControl(c)) {
formClass = c;
break;

2
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs

@ -284,7 +284,7 @@ namespace ICSharpCode.FormsDesigner @@ -284,7 +284,7 @@ namespace ICSharpCode.FormsDesigner
serviceContainer.AddService(typeof(DesignerOptionService), new SharpDevelopDesignerOptionService());
serviceContainer.AddService(typeof(ITypeDiscoveryService), new TypeDiscoveryService());
serviceContainer.AddService(typeof(MemberRelationshipService), new DefaultMemberRelationshipService());
serviceContainer.AddService(typeof(ProjectResourceService), new ProjectResourceService(ParserService.GetParseInformation(this.DesignerCodeFile.FileName).MostRecentCompilationUnit.ProjectContent));
serviceContainer.AddService(typeof(ProjectResourceService), new ProjectResourceService(ParserService.GetParseInformation(this.DesignerCodeFile.FileName).CompilationUnit.ProjectContent));
// Provide the ImageResourceEditor for all Image and Icon properties
this.addedTypeDescriptionProviders.Add(typeof(Image), TypeDescriptor.AddAttributes(typeof(Image), new EditorAttribute(typeof(ImageResourceEditor), typeof(System.Drawing.Design.UITypeEditor))));

2
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/SecondaryDisplayBinding.cs

@ -72,7 +72,7 @@ namespace ICSharpCode.FormsDesigner @@ -72,7 +72,7 @@ namespace ICSharpCode.FormsDesigner
public static bool IsDesignable(ParseInformation info)
{
if (info != null) {
ICompilationUnit cu = (ICompilationUnit)info.BestCompilationUnit;
ICompilationUnit cu = (ICompilationUnit)info.CompilationUnit;
foreach (IClass c in cu.Classes) {
IMethod method = GetInitializeComponents(c);
if (method != null) {

2
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/ProjectResourcesMemberCodeDomSerializer.cs

@ -101,7 +101,7 @@ namespace ICSharpCode.FormsDesigner.Services @@ -101,7 +101,7 @@ namespace ICSharpCode.FormsDesigner.Services
string resourceCodeFile = items.Single().FileName;
// We expect a single class to be in this file.
IClass resourceClass = ParserService.GetParseInformation(resourceCodeFile).MostRecentCompilationUnit.Classes.Single();
IClass resourceClass = ParserService.GetParseInformation(resourceCodeFile).CompilationUnit.Classes.Single();
// Here we assume that VerifyResourceName is the same name transform that
// was used when generating the resource code file.
// This should be true as long as the code is generated using the

2
src/AddIns/Misc/SharpRefactoring/Src/MethodExtractorBase.cs

@ -209,7 +209,7 @@ namespace SharpRefactoring @@ -209,7 +209,7 @@ namespace SharpRefactoring
{
Dom.ParseInformation parseInfo = ParserService.GetParseInformation(textEditor.FileName);
if (parseInfo != null) {
Dom.IClass c = parseInfo.MostRecentCompilationUnit.GetInnermostClass(line, column);
Dom.IClass c = parseInfo.CompilationUnit.GetInnermostClass(line, column);
if (c != null) {
foreach (Dom.IMember member in c.Properties) {
if (member.BodyRegion.IsInside(line, column)) {

3
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Xml/AXmlParser.cs

@ -137,6 +137,9 @@ namespace ICSharpCode.AvalonEdit.Xml @@ -137,6 +137,9 @@ namespace ICSharpCode.AvalonEdit.Xml
/// Incrementaly parse the given text.
/// You have to hold the write lock.
/// </summary>
/// <param name="input">
/// The full XML text of the new document.
/// </param>
/// <param name="changesSinceLastParse">
/// Changes since last parse. Null will cause full reparse.
/// </param>

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

@ -606,9 +606,6 @@ @@ -606,9 +606,6 @@
<Compile Include="Src\TextEditor\Gui\Editor\ErrorDrawer.cs" />
<Compile Include="Src\TextEditor\Gui\Editor\ITextAreaControlProvider.cs" />
<Compile Include="Src\TextEditor\Gui\Editor\ParserFoldingStrategy.cs" />
<Compile Include="Src\TextEditor\Gui\Editor\QuickClassBrowserPanel.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Src\TextEditor\Gui\Editor\SharpDevelopTextAreaControl.cs">
<SubType>UserControl</SubType>
</Compile>

2
src/Main/Base/Project/Src/Editor/CodeCompletion/OverrideCompletionItemProvider.cs

@ -47,7 +47,7 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion @@ -47,7 +47,7 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
{
ParseInformation parseInfo = ParserService.GetParseInformation(editor.FileName);
if (parseInfo == null) return null;
IClass c = parseInfo.MostRecentCompilationUnit.GetInnermostClass(editor.Caret.Line, editor.Caret.Column);
IClass c = parseInfo.CompilationUnit.GetInnermostClass(editor.Caret.Line, editor.Caret.Column);
if (c == null) return null;
LanguageProperties language = c.ProjectContent.Language;
OverrideCompletionItemList result = new OverrideCompletionItemList();

2
src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/Nodes/ProjectNode.cs

@ -102,7 +102,7 @@ namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser @@ -102,7 +102,7 @@ namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser
foreach (ProjectItem item in Project.GetItemsOfType(ItemType.Compile)) {
ParseInformation parseInformation = ParserService.GetParseInformation(item.FileName);
if (parseInformation != null) {
InsertParseInformation(parseInformation.BestCompilationUnit);
InsertParseInformation(parseInformation.CompilationUnit);
}
}
}

4
src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs

@ -221,7 +221,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -221,7 +221,7 @@ namespace ICSharpCode.SharpDevelop.Gui
if (parseInfo != null) {
IPositionable positionable = WorkbenchSingleton.Workbench.ActiveViewContent as IPositionable;
if (positionable != null) {
IClass c = parseInfo.MostRecentCompilationUnit.GetInnermostClass(positionable.Line, positionable.Column);
IClass c = parseInfo.CompilationUnit.GetInnermostClass(positionable.Line, positionable.Column);
if (c != null) return c;
}
}
@ -233,7 +233,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -233,7 +233,7 @@ namespace ICSharpCode.SharpDevelop.Gui
{
ParseInformation parseInfo = ParserService.GetParseInformation(item.FileName);
if (parseInfo != null) {
IClass c = parseInfo.MostRecentCompilationUnit.GetInnermostClass(item.Line, item.Column);
IClass c = parseInfo.CompilationUnit.GetInnermostClass(item.Line, item.Column);
if (c != null) return c;
}

2
src/Main/Base/Project/Src/Services/RefactoringService/FindReferencesAndRenameHelper.cs

@ -95,7 +95,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -95,7 +95,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring
}
}
ICompilationUnit newCompilationUnit = ParserService.ParseFile(newInterfaceFileName).MostRecentCompilationUnit;
ICompilationUnit newCompilationUnit = ParserService.ParseFile(newInterfaceFileName).CompilationUnit;
IClass newInterfaceDef = newCompilationUnit.Classes[0];
// finally, add the interface to the base types of the class that we're extracting from

2
src/Main/Base/Project/Src/Services/RefactoringService/NamespaceRefactoringService.cs

@ -45,7 +45,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -45,7 +45,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring
{
ParseInformation info = ParserService.ParseFile(fileName, document);
if (info == null) return;
ICompilationUnit cu = info.MostRecentCompilationUnit;
ICompilationUnit cu = info.CompilationUnit;
List<IUsing> newUsings = new List<IUsing>(cu.UsingScope.Usings);
if (sort) {

2
src/Main/Base/Project/Src/Services/RefactoringService/RefactoringMenuBuilder.cs

@ -142,7 +142,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -142,7 +142,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring
} else {
ParseInformation parseInfo = ParserService.GetParseInformation(textEditor.FileName);
if (parseInfo != null) {
cu = parseInfo.MostRecentCompilationUnit;
cu = parseInfo.CompilationUnit;
if (cu != null) {
IClass callingClass = cu.GetInnermostClass(caretLine, textEditor.Caret.Column);
callingMember = GetCallingMember(callingClass, caretLine, textEditor.Caret.Column);

2
src/Main/Base/Project/Src/TextEditor/Commands/GenerateCodeCommand.cs

@ -41,7 +41,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands @@ -41,7 +41,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
return;
}
ICompilationUnit cu = parseInformation.MostRecentCompilationUnit as ICompilationUnit;
ICompilationUnit cu = parseInformation.CompilationUnit as ICompilationUnit;
if (cu == null) {
return;
}

10
src/Main/Base/Project/Src/TextEditor/Gui/Editor/ParserFoldingStrategy.cs

@ -14,6 +14,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -14,6 +14,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
{
public class ParserFoldingStrategy : IFoldingStrategy
{
/*
void AddClassMembers(IClass c, List<FoldMarker> foldMarkers, IDocument document)
{
if (c.ClassType == ClassType.Delegate) {
@ -100,5 +101,14 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -100,5 +101,14 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
}
return foldMarkers;
}
*/
/// <remarks>
/// Calculates the fold level of a specific line.
/// </remarks>
public List<FoldMarker> GenerateFoldMarkers(IDocument document, string fileName, object parseInfo)
{
return null;
}
}
}

532
src/Main/Base/Project/Src/TextEditor/Gui/Editor/QuickClassBrowserPanel.cs

@ -1,532 +0,0 @@ @@ -1,532 +0,0 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="none" email=""/>
// <version>$Revision$</version>
// </file>
// created on 07.03.2004 at 19:12
using System;
using System.Collections;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.TextEditor;
namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
{
public class QuickClassBrowserPanel : System.Windows.Forms.UserControl
{
private System.Windows.Forms.ComboBox classComboBox;
private System.Windows.Forms.ComboBox membersComboBox;
ICompilationUnit currentCompilationUnit;
SharpDevelopTextAreaControl textAreaControl;
bool autoselect = true;
class ComboBoxItem : System.IComparable
{
IEntity item;
string text;
int iconIndex;
bool isInCurrentPart;
public int IconIndex {
get {
return iconIndex;
}
}
public object Item {
get {
return item;
}
}
public bool IsInCurrentPart {
get {
return isInCurrentPart;
}
}
public DomRegion ItemRegion {
get {
IClass classItem = item as IClass;
if (item is IClass)
return ((IClass)item).Region;
else if (item is IMember)
return ((IMember)item).Region;
else
return DomRegion.Empty;
}
}
public int Line {
get {
DomRegion r = this.ItemRegion;
if (r.IsEmpty)
return 0;
else
return r.BeginLine - 1;
}
}
public int Column {
get {
DomRegion r = this.ItemRegion;
if (r.IsEmpty)
return 0;
else
return r.BeginColumn - 1;
}
}
public int EndLine {
get {
DomRegion r = this.ItemRegion;
if (r.IsEmpty)
return 0;
else
return r.EndLine - 1;
}
}
public ComboBoxItem(IEntity item, string text, ClassBrowserImage image, bool isInCurrentPart)
{
this.item = item;
this.text = text;
this.iconIndex = image.ImageIndex;
this.isInCurrentPart = isInCurrentPart;
}
public bool IsInside(int lineNumber)
{
if (!isInCurrentPart)
return false;
IClass classItem = item as IClass;
if (classItem != null) {
if (classItem.Region.IsEmpty)
return false;
return classItem.Region.BeginLine - 1 <= lineNumber &&
classItem.Region.EndLine - 1 >= lineNumber;
}
IMember member = item as IMember;
if (member == null || member.Region.IsEmpty) {
return false;
}
bool isInside = member.Region.BeginLine - 1 <= lineNumber;
if (member is IMethodOrProperty) {
if (((IMethodOrProperty)member).BodyRegion.EndLine >= 0) {
isInside &= lineNumber <= ((IMethodOrProperty)member).BodyRegion.EndLine - 1;
} else {
return member.Region.BeginLine - 1 == lineNumber;
}
} else {
isInside &= lineNumber <= member.Region.EndLine - 1;
}
return isInside;
}
public int CompareItemTo(object obj)
{
ComboBoxItem boxItem = (ComboBoxItem)obj;
if (boxItem.Item is IComparable) {
return ((IComparable)boxItem.Item).CompareTo(item);
}
if (boxItem.text != text || boxItem.Line != Line || boxItem.EndLine != EndLine || boxItem.iconIndex != iconIndex) {
return 1;
}
return 0;
}
public override string ToString()
{
return text;
}
#region System.IComparable interface implementation
public int CompareTo(object obj)
{
return ToString().CompareTo(obj.ToString());
}
#endregion
}
public QuickClassBrowserPanel(SharpDevelopTextAreaControl textAreaControl)
{
InitializeComponent();
this.membersComboBox.MaxDropDownItems = 20;
base.Dock = DockStyle.Top;
this.textAreaControl = textAreaControl;
this.textAreaControl.ActiveTextAreaControl.Caret.PositionChanged += new EventHandler(CaretPositionChanged);
}
protected override void Dispose(bool disposing)
{
if (disposing) {
this.textAreaControl.ActiveTextAreaControl.Caret.PositionChanged -= new EventHandler(CaretPositionChanged);
this.membersComboBox.Dispose();
this.classComboBox.Dispose();
}
base.Dispose(disposing);
}
void CaretPositionChanged(object sender, EventArgs e)
{
// ignore simple movements
if (e != EventArgs.Empty) {
return;
}
try {
ParseInformation parseInfo = ParserService.GetParseInformation(textAreaControl.FileName);
if (parseInfo != null) {
if (currentCompilationUnit != (ICompilationUnit)parseInfo.MostRecentCompilationUnit) {
currentCompilationUnit = (ICompilationUnit)parseInfo.MostRecentCompilationUnit;
if (currentCompilationUnit != null) {
FillClassComboBox(true);
FillMembersComboBox();
}
}
UpdateClassComboBox();
UpdateMembersComboBox();
}
} catch (Exception ex) {
MessageService.ShowException(ex);
}
}
bool membersComboBoxSelectedMember = false;
void UpdateMembersComboBox()
{
autoselect = false;
try {
if (currentCompilationUnit != null) {
for (int i = 0; i < membersComboBox.Items.Count; ++i) {
if (((ComboBoxItem)membersComboBox.Items[i]).IsInside(textAreaControl.ActiveTextAreaControl.Caret.Line)) {
if (membersComboBox.SelectedIndex != i) {
membersComboBox.SelectedIndex = i;
}
if (!membersComboBoxSelectedMember) {
membersComboBox.Refresh();
}
membersComboBoxSelectedMember = true;
return;
}
}
}
membersComboBox.SelectedIndex = -1;
if (membersComboBoxSelectedMember) {
membersComboBox.Refresh();
membersComboBoxSelectedMember = false;
}
} finally {
autoselect = true;
}
}
bool classComboBoxSelectedMember = false;
void UpdateClassComboBox()
{
// Still needed ?
if (currentCompilationUnit == null) {
currentCompilationUnit = (ICompilationUnit)ParserService.GetParseInformation(FileUtility.NormalizePath(textAreaControl.FileName)).MostRecentCompilationUnit;
}
autoselect = false;
try {
if (currentCompilationUnit != null) {
//// Alex: when changing between files in different compilation units whole process must be restarted
//// happens usually when files are opened from different project(s)
for (int i = 0; i < classComboBox.Items.Count; ++i) {
if (((ComboBoxItem)classComboBox.Items[i]).IsInside(textAreaControl.ActiveTextAreaControl.Caret.Line)) {
bool innerClassContainsCaret = false;
for (int j = i + 1; j < classComboBox.Items.Count; ++j) {
if (((ComboBoxItem)classComboBox.Items[j]).IsInside(textAreaControl.ActiveTextAreaControl.Caret.Line)) {
innerClassContainsCaret = true;
break;
}
}
if (!innerClassContainsCaret) {
if (classComboBox.SelectedIndex != i) {
classComboBox.SelectedIndex = i;
FillMembersComboBox();
}
if (!classComboBoxSelectedMember) {
classComboBox.Refresh();
}
classComboBoxSelectedMember = true;
return;
}
}
}
}
if (classComboBoxSelectedMember) {
classComboBox.Refresh();
classComboBoxSelectedMember = false;
}
} finally {
autoselect = true;
}
// classComboBox.SelectedIndex = -1;
}
bool NeedtoUpdate(ArrayList items, ComboBox comboBox)
{
if (items.Count != comboBox.Items.Count) {
return true;
}
for (int i = 0; i < items.Count; ++i) {
ComboBoxItem oldItem = (ComboBoxItem)comboBox.Items[i];
ComboBoxItem newItem = (ComboBoxItem)items[i];
if (oldItem.GetType() != newItem.GetType()) {
return true;
}
if (newItem.CompareItemTo(oldItem) != 0) {
return true;
}
}
return false;
}
IClass lastClassInMembersComboBox;
void FillMembersComboBox()
{
IClass c = GetCurrentSelectedClass();
if (c != null && lastClassInMembersComboBox != c) {
lastClassInMembersComboBox = c;
ArrayList items = new ArrayList();
bool partialMode = false;
IClass currentPart = c;
if (c.IsPartial) {
CompoundClass cc = c.GetCompoundClass() as CompoundClass;
if (cc != null) {
partialMode = true;
c = cc;
}
}
IAmbience ambience = AmbienceService.GetCurrentAmbience();
ambience.ConversionFlags = ConversionFlags.ShowTypeParameterList | ConversionFlags.ShowParameterList | ConversionFlags.ShowParameterNames;
int lastIndex = 0;
IComparer comparer = new Comparer(System.Globalization.CultureInfo.InvariantCulture);
foreach (IMethod m in c.Methods) {
items.Add(new ComboBoxItem(m, ambience.Convert(m), ClassBrowserIconService.GetIcon(m), partialMode ? currentPart.Methods.Contains(m) : true));
}
// use "items.Count - lastIndex" instead of "c.Methods.Count"
// because it is possible that the number of methods in the class
// changes while the loop is running (if a compound class is changed
// from another thread)
items.Sort(lastIndex, items.Count - lastIndex, comparer);
lastIndex = items.Count;
foreach (IProperty p in c.Properties) {
items.Add(new ComboBoxItem(p, ambience.Convert(p), ClassBrowserIconService.GetIcon(p), partialMode ? currentPart.Properties.Contains(p) : true));
}
items.Sort(lastIndex, items.Count - lastIndex, comparer);
lastIndex = items.Count;
foreach (IField f in c.Fields) {
items.Add(new ComboBoxItem(f, ambience.Convert(f), ClassBrowserIconService.GetIcon(f), partialMode ? currentPart.Fields.Contains(f) : true));
}
items.Sort(lastIndex, items.Count - lastIndex, comparer);
lastIndex = items.Count;
foreach (IEvent evt in c.Events) {
items.Add(new ComboBoxItem(evt, ambience.Convert(evt), ClassBrowserIconService.GetIcon(evt), partialMode ? currentPart.Events.Contains(evt) : true));
}
items.Sort(lastIndex, items.Count - lastIndex, comparer);
lastIndex = items.Count;
membersComboBox.BeginUpdate();
membersComboBox.Items.Clear();
membersComboBox.Items.AddRange(items.ToArray());
membersComboBox.EndUpdate();
UpdateMembersComboBox();
}
}
void AddClasses(ArrayList items, ICollection<IClass> classes)
{
foreach (IClass c in classes) {
IAmbience ambience = AmbienceService.GetCurrentAmbience();
ambience.ConversionFlags = ConversionFlags.UseFullyQualifiedMemberNames | ConversionFlags.ShowTypeParameterList;
items.Add(new ComboBoxItem(c, ambience.Convert(c), ClassBrowserIconService.GetIcon(c), true));
AddClasses(items, c.InnerClasses);
}
}
void FillClassComboBox(bool isUpdateRequired)
{
ArrayList items = new ArrayList();
AddClasses(items, currentCompilationUnit.Classes);
if (isUpdateRequired) {
classComboBox.BeginUpdate();
}
classComboBox.Items.Clear();
membersComboBox.Items.Clear();
classComboBox.Items.AddRange(items.ToArray());
if (items.Count == 1) {
try {
autoselect = false;
classComboBox.SelectedIndex = 0;
FillMembersComboBox();
} finally {
autoselect = true;
}
}
if (isUpdateRequired) {
classComboBox.EndUpdate();
}
UpdateClassComboBox();
}
// THIS METHOD IS MAINTAINED BY THE FORM DESIGNER
// DO NOT EDIT IT MANUALLY! YOUR CHANGES ARE LIKELY TO BE LOST
void InitializeComponent() {
this.membersComboBox = new System.Windows.Forms.ComboBox();
this.classComboBox = new System.Windows.Forms.ComboBox();
this.SuspendLayout();
//
// membersComboBox
//
this.membersComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.membersComboBox.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable;
this.membersComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.membersComboBox.Location = new System.Drawing.Point(200, 4);
this.membersComboBox.Name = "membersComboBox";
this.membersComboBox.Size = new System.Drawing.Size(161, 21);
this.membersComboBox.TabIndex = 1;
this.membersComboBox.SelectedIndexChanged += new System.EventHandler(this.ComboBoxSelectedIndexChanged);
this.membersComboBox.MeasureItem += new System.Windows.Forms.MeasureItemEventHandler(this.MeasureComboBoxItem);
this.membersComboBox.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.ComboBoxDrawItem);
//
// classComboBox
//
this.classComboBox.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable;
this.classComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.classComboBox.Location = new System.Drawing.Point(4, 4);
this.classComboBox.Name = "classComboBox";
this.classComboBox.Size = new System.Drawing.Size(189, 21);
this.classComboBox.TabIndex = 0;
this.classComboBox.SelectedIndexChanged += new System.EventHandler(this.ComboBoxSelectedIndexChanged);
this.classComboBox.MeasureItem += new System.Windows.Forms.MeasureItemEventHandler(this.MeasureComboBoxItem);
this.classComboBox.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.ComboBoxDrawItem);
this.classComboBox.Sorted = true;
//
// QuickClassBrowserPanel
//
this.Controls.Add(this.membersComboBox);
this.Controls.Add(this.classComboBox);
this.Name = "QuickClassBrowserPanel";
this.Size = new System.Drawing.Size(368, 28);
this.Resize += new System.EventHandler(this.QuickClassBrowserPanelResize);
this.ResumeLayout(false);
}
public IClass GetCurrentSelectedClass()
{
if (classComboBox.SelectedIndex >= 0) {
return (IClass)((ComboBoxItem)classComboBox.Items[classComboBox.SelectedIndex]).Item;
}
return null;
}
void ComboBoxSelectedIndexChanged(object sender, System.EventArgs e)
{
ComboBox comboBox = (ComboBox)sender;
if (autoselect && comboBox.SelectedIndex >= 0) {
ComboBoxItem item = (ComboBoxItem)comboBox.Items[comboBox.SelectedIndex];
if (item.IsInCurrentPart) {
textAreaControl.ActiveTextAreaControl.CenterViewOn(
item.Line, (int)(0.3 * textAreaControl.ActiveTextAreaControl.TextArea.TextView.VisibleLineCount));
textAreaControl.ActiveTextAreaControl.JumpTo(item.Line, item.Column);
textAreaControl.ActiveTextAreaControl.TextArea.Focus();
} else {
IMember m = item.Item as IMember;
if (m != null) {
string fileName = m.DeclaringType.CompilationUnit.FileName;
FileService.JumpToFilePosition(fileName, item.Line, item.Column);
}
}
if (comboBox == classComboBox) {
FillMembersComboBox();
UpdateMembersComboBox();
}
}
}
// font - has to be static - don't create on each draw
static Font font = font = new Font("Arial", 8.25f);
static StringFormat drawStringFormat = new StringFormat(StringFormatFlags.NoWrap);
void ComboBoxDrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
ComboBox comboBox = (ComboBox)sender;
e.DrawBackground();
if (e.Index >= 0) {
ComboBoxItem item = (ComboBoxItem)comboBox.Items[e.Index];
e.Graphics.DrawImageUnscaled(ClassBrowserIconService.ImageList.Images[item.IconIndex],
new Point(e.Bounds.X, e.Bounds.Y + (e.Bounds.Height - ClassBrowserIconService.ImageList.ImageSize.Height) / 2));
Rectangle drawingRect = new Rectangle(e.Bounds.X + (int)ClassBrowserIconService.ImageSize.Width,
e.Bounds.Y,
e.Bounds.Width - (int)ClassBrowserIconService.ImageSize.Width,
e.Bounds.Height);
Brush drawItemBrush = SystemBrushes.WindowText;
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected) {
drawItemBrush = SystemBrushes.HighlightText;
}
if (!item.IsInCurrentPart) {
drawItemBrush = SystemBrushes.ControlDark;
} else if (e.State == DrawItemState.ComboBoxEdit && !item.IsInside(textAreaControl.ActiveTextAreaControl.Caret.Line)) {
drawItemBrush = SystemBrushes.ControlDark;
}
e.Graphics.DrawString(item.ToString(),
font,
drawItemBrush,
drawingRect,
drawStringFormat);
}
e.DrawFocusRectangle();
}
void QuickClassBrowserPanelResize(object sender, System.EventArgs e)
{
Size comboBoxSize = new Size(Width / 2 - 4 * 3, 21);
classComboBox.Size = comboBoxSize;
membersComboBox.Location = new Point(classComboBox.Bounds.Right + 8, classComboBox.Bounds.Top);
membersComboBox.Size = comboBoxSize;
}
void MeasureComboBoxItem(object sender, System.Windows.Forms.MeasureItemEventArgs e)
{
ComboBox comboBox = (ComboBox)sender;
if (e.Index >= 0) {
ComboBoxItem item = (ComboBoxItem)comboBox.Items[e.Index];
SizeF size = e.Graphics.MeasureString(item.ToString(), font);
e.ItemWidth = (int)size.Width;
e.ItemHeight = (int)Math.Max(size.Height, ClassBrowserIconService.ImageSize.Height);
}
}
}
}

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

@ -36,30 +36,9 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -36,30 +36,9 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
get { return adapter; }
}
QuickClassBrowserPanel quickClassBrowserPanel = null;
Control customQuickClassBrowserPanel = null;
ErrorDrawer errorDrawer;
IAdvancedHighlighter advancedHighlighter;
public QuickClassBrowserPanel QuickClassBrowserPanel {
get {
return quickClassBrowserPanel;
}
}
public Control CustomQuickClassBrowserPanel {
get {
return customQuickClassBrowserPanel;
}
set {
if (customQuickClassBrowserPanel != null) {
RemoveQuickClassBrowserPanel();
customQuickClassBrowserPanel.Dispose();
}
customQuickClassBrowserPanel = value;
ActivateQuickClassBrowserOnDemand();
}
}
public SharpDevelopTextAreaControl()
: this(true, true)
{
@ -135,14 +114,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -135,14 +114,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
errorDrawer.Dispose();
errorDrawer = null;
}
if (quickClassBrowserPanel != null) {
quickClassBrowserPanel.Dispose();
quickClassBrowserPanel = null;
}
if (customQuickClassBrowserPanel != null) {
customQuickClassBrowserPanel.Dispose();
customQuickClassBrowserPanel = null;
}
if (advancedHighlighter != null) {
advancedHighlighter.Dispose();
advancedHighlighter = null;
@ -193,11 +164,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -193,11 +164,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
SharpDevelopTextEditorProperties sdtep = base.TextEditorProperties as SharpDevelopTextEditorProperties;
if (sdtep != null) {
if (!sdtep.ShowQuickClassBrowserPanel) {
RemoveQuickClassBrowserPanel();
} else {
ActivateQuickClassBrowserOnDemand();
}
if (sdtep.UnderlineErrors) {
if (errorDrawer == null) {
errorDrawer = new ErrorDrawer(this);
@ -237,52 +203,9 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -237,52 +203,9 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
}
}
void RemoveQuickClassBrowserPanel()
{
if (quickClassBrowserPanel != null) {
Controls.Remove(quickClassBrowserPanel);
quickClassBrowserPanel.Dispose();
quickClassBrowserPanel = null;
textAreaPanel.BorderStyle = System.Windows.Forms.BorderStyle.None;
}
if (customQuickClassBrowserPanel != null) {
if (Controls.Contains(customQuickClassBrowserPanel)) {
Controls.Remove(customQuickClassBrowserPanel);
customQuickClassBrowserPanel.Enabled = false;
textAreaPanel.BorderStyle = System.Windows.Forms.BorderStyle.None;
}
}
}
void ShowQuickClassBrowserPanel()
{
if (quickClassBrowserPanel == null) {
quickClassBrowserPanel = new QuickClassBrowserPanel(this);
Controls.Add(quickClassBrowserPanel);
textAreaPanel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
}
if (customQuickClassBrowserPanel != null) {
if (quickClassBrowserPanel != null)
RemoveQuickClassBrowserPanel();
if (!Controls.Contains(customQuickClassBrowserPanel)) {
Controls.Add(customQuickClassBrowserPanel);
customQuickClassBrowserPanel.Enabled = true;
textAreaPanel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
}
return;
}
}
public void ActivateQuickClassBrowserOnDemand()
{
SharpDevelopTextEditorProperties sdtep = base.TextEditorProperties as SharpDevelopTextEditorProperties;
if (sdtep != null && sdtep.ShowQuickClassBrowserPanel && FileName != null) {
bool quickClassPanelActive = ParserService.CreateParser(FileName) != null;
if (quickClassPanelActive) {
ShowQuickClassBrowserPanel();
} else {
RemoveQuickClassBrowserPanel();
}
}
}
protected override void OnFileNameChanged(EventArgs e)

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

@ -26,8 +26,8 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -26,8 +26,8 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
public CSharpExpressionFinder(ParseInformation parseInformation)
{
this.parseInformation = parseInformation;
if (parseInformation != null && parseInformation.MostRecentCompilationUnit != null) {
projectContent = parseInformation.MostRecentCompilationUnit.ProjectContent;
if (parseInformation != null && parseInformation.CompilationUnit != null) {
projectContent = parseInformation.CompilationUnit.ProjectContent;
} else {
projectContent = DefaultProjectContent.DummyProjectContent;
}

2
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ClassFinder.cs

@ -98,7 +98,7 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -98,7 +98,7 @@ namespace ICSharpCode.SharpDevelop.Dom
void Init(ParseInformation parseInfo)
{
if (parseInfo != null) {
cu = parseInfo.MostRecentCompilationUnit;
cu = parseInfo.CompilationUnit;
}
if (cu != null) {

2
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs

@ -178,7 +178,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -178,7 +178,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return false;
}
cu = parseInfo.MostRecentCompilationUnit;
cu = parseInfo.CompilationUnit;
if (cu == null || cu.ProjectContent == null) {
return false;
}

4
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ProjectContent/ParseInformation.cs

@ -28,12 +28,14 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -28,12 +28,14 @@ namespace ICSharpCode.SharpDevelop.Dom
/// Gets the last compilation unit that was valid (=no parse errors).
/// This property might be null.
/// </summary>
[ObsoleteAttribute]
public ICompilationUnit ValidCompilationUnit { get { return unit; } }
/// <summary>
/// Gets the last compilation unit that was invalid (=had parse errors).
/// This property is null if the most recent compilation unit is valid.
/// </summary>
[ObsoleteAttribute]
public ICompilationUnit DirtyCompilationUnit { get { return unit; } }
/// <summary>
@ -41,11 +43,13 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -41,11 +43,13 @@ namespace ICSharpCode.SharpDevelop.Dom
/// This returns the ValidCompilationUnit if one exists, otherwise
/// the DirtyCompilationUnit.
/// </summary>
[ObsoleteAttribute]
public ICompilationUnit BestCompilationUnit { get { return unit; } }
/// <summary>
/// Gets the most recent compilation unit. The unit might be valid or invalid.
/// </summary>
[ObsoleteAttribute]
public ICompilationUnit MostRecentCompilationUnit { get { return unit; } }
public ParseInformation(ICompilationUnit unit)

2
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Refactoring/NRefactoryRefactoringProvider.cs

@ -263,7 +263,7 @@ namespace ICSharpCode.SharpDevelop.Dom.Refactoring @@ -263,7 +263,7 @@ namespace ICSharpCode.SharpDevelop.Dom.Refactoring
{
if (parseInformation != null) {
this.parseInformation = parseInformation;
resolver = new NRefactoryResolver.NRefactoryResolver(parseInformation.MostRecentCompilationUnit.ProjectContent.Language);
resolver = new NRefactoryResolver.NRefactoryResolver(parseInformation.CompilationUnit.ProjectContent.Language);
}
}

6
src/Main/ICSharpCode.SharpDevelop.Sda/Src/ExceptionBox.cs

@ -65,6 +65,9 @@ namespace ICSharpCode.SharpDevelop.Sda @@ -65,6 +65,9 @@ namespace ICSharpCode.SharpDevelop.Sda
ShowErrorBox(ex, "Unhandled exception", e.IsTerminating);
}
/// <summary>
/// Displays the exception box.
/// </summary>
public static void ShowErrorBox(Exception exception, string message)
{
ShowErrorBox(exception, message, false);
@ -76,6 +79,9 @@ namespace ICSharpCode.SharpDevelop.Sda @@ -76,6 +79,9 @@ namespace ICSharpCode.SharpDevelop.Sda
[SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]
static void ShowErrorBox(Exception exception, string message, bool mustTerminate)
{
if (exception == null)
throw new ArgumentNullException("exception");
// ignore reentrant calls (e.g. when there's an exception in OnRender)
if (showingBox)
return;

Loading…
Cancel
Save