Browse Source

Small improvements.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@189 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 21 years ago
parent
commit
6490c0c38b
  1. BIN
      data/resources/layouts/Debug.xml
  2. BIN
      data/resources/layouts/Default.xml
  3. BIN
      data/resources/layouts/Plain.xml
  4. 2
      src/AddIns/Misc/NUnitPad/Project/Src/Gui/TestTreeView.cs
  5. 3
      src/Libraries/NRefactory/Project/Src/Parser/Visitors/VBNetToCSharpConvertVisitor.cs
  6. 60
      src/Main/Base/Project/Src/Commands/ClassMemberMenuBuilder.cs
  7. 5
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs
  8. 12
      src/Main/Base/Project/Src/Services/File/FileService.cs
  9. 30
      src/Main/Base/Project/Src/TextEditor/Bookmarks/ClassMemberBookmark.cs
  10. 2
      src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/AbstractPropertyCodeGenerator.cs
  11. 9
      src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/CodeGenerator.cs
  12. 12
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorDisplayBinding.cs

BIN
data/resources/layouts/Debug.xml

Binary file not shown.

BIN
data/resources/layouts/Default.xml

Binary file not shown.

BIN
data/resources/layouts/Plain.xml

Binary file not shown.

2
src/AddIns/Misc/NUnitPad/Project/Src/Gui/TestTreeView.cs

@ -223,7 +223,7 @@ namespace ICSharpCode.NUnitPad @@ -223,7 +223,7 @@ namespace ICSharpCode.NUnitPad
// If any tasks bring task view to front.
if (TaskService.TaskCount > 0) {
IWorkbench Workbench = ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.Workbench;
PadDescriptor padDescriptor = Workbench.GetPad(typeof(OpenTaskView));
PadDescriptor padDescriptor = Workbench.GetPad(typeof(ErrorList));
if (padDescriptor != null) {
padDescriptor.BringPadToFront();

3
src/Libraries/NRefactory/Project/Src/Parser/Visitors/VBNetToCSharpConvertVisitor.cs

@ -41,12 +41,13 @@ namespace ICSharpCode.NRefactory.Parser @@ -41,12 +41,13 @@ namespace ICSharpCode.NRefactory.Parser
if (fre != null && "New".Equals(fre.FieldName, StringComparison.InvariantCultureIgnoreCase)) {
if (fre.TargetObject is BaseReferenceExpression || fre.TargetObject is ClassReferenceExpression) {
body.Children.RemoveAt(0);
ConstructorInitializer ci = constructorDeclaration.ConstructorInitializer;
ConstructorInitializer ci = new ConstructorInitializer();
ci.Arguments = ie.Parameters;
if (fre.TargetObject is BaseReferenceExpression)
ci.ConstructorInitializerType = ConstructorInitializerType.Base;
else
ci.ConstructorInitializerType = ConstructorInitializerType.This;
constructorDeclaration.ConstructorInitializer = ci;
}
}
}

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

@ -18,6 +18,7 @@ using ICSharpCode.SharpDevelop.Dom; @@ -18,6 +18,7 @@ using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Bookmarks;
using ICSharpCode.SharpDevelop.Gui;
using SearchAndReplace;
using ICSharpCode.SharpDevelop.DefaultEditor.Commands;
namespace ICSharpCode.SharpDevelop.Commands
{
@ -54,9 +55,68 @@ namespace ICSharpCode.SharpDevelop.Commands @@ -54,9 +55,68 @@ namespace ICSharpCode.SharpDevelop.Commands
cmd.Tag = member;
list.Add(cmd);
if (member is IField) {
string propertyName = AbstractPropertyCodeGenerator.GetPropertyName(member.Name);
LanguageProperties language = member.DeclaringType.ProjectContent.Language;
bool found = false;
foreach (IProperty prop in member.DeclaringType.Properties) {
if (language.NameComparer.Equals(propertyName, prop.Name)) {
found = true;
break;
}
}
if (!found) {
cmd = new MenuCommand("Create &getter", CreateGetter);
cmd.Tag = member;
list.Add(cmd);
cmd = new MenuCommand("Create &property", CreateProperty);
cmd.Tag = member;
list.Add(cmd);
}
}
return list.ToArray();
}
TextEditorControl JumpBehindDefinition(IMember member)
{
IViewContent viewContent;
viewContent = FileService.JumpToFilePosition(member.DeclaringType.CompilationUnit.FileName,
member.Region.EndLine, 0);
ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.ITextEditorControlProvider tecp = viewContent as ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.ITextEditorControlProvider;
return (tecp == null) ? null : tecp.TextEditorControl;
}
void CreateProperty(object sender, EventArgs e)
{
CreateProperty(sender, e, true);
}
void CreateGetter(object sender, EventArgs e)
{
CreateProperty(sender, e, false);
}
void CreateProperty(object sender, EventArgs e, bool includeSetter)
{
MenuCommand item = (MenuCommand)sender;
IMember member = (IMember)item.Tag;
TextEditorControl textEditor = JumpBehindDefinition(member);
AbstractPropertyCodeGenerator generator;
if (includeSetter)
generator = new GetterAndSetterCodeGenerator(member.DeclaringType);
else
generator = new GetterCodeGenerator(member.DeclaringType);
List<AbstractFieldCodeGenerator.FieldWrapper> list = new List<AbstractFieldCodeGenerator.FieldWrapper>();
foreach (AbstractFieldCodeGenerator.FieldWrapper fw in generator.Content) {
if (fw.Field == member) {
list.Add(fw);
}
}
generator.GenerateCode(textEditor.ActiveTextAreaControl.TextArea, list);
}
void GoToBase(object sender, EventArgs e)
{
MenuCommand item = (MenuCommand)sender;

5
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs

@ -69,19 +69,22 @@ namespace ICSharpCode.SharpDevelop.Project @@ -69,19 +69,22 @@ namespace ICSharpCode.SharpDevelop.Project
projectBrowserPanel.Clear();
}
string lastFileName;
void ActiveWindowChanged(object sender, EventArgs e)
{
if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow == null) {
return;
}
string fileName = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ViewContent.FileName;
if (fileName == null) {
if (fileName == null || lastFileName == fileName) {
return;
}
if (!FileUtility.IsValidFileName(fileName)) {
return;
}
lastFileName = fileName;
projectBrowserPanel.SelectFile(fileName);
}

12
src/Main/Base/Project/Src/Services/File/FileService.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"/>
@ -232,15 +232,15 @@ namespace ICSharpCode.Core @@ -232,15 +232,15 @@ namespace ICSharpCode.Core
OnFileRenamed(new FileRenameEventArgs(oldName, newName, isDirectory));
}
public static void JumpToFilePosition(string fileName, int line, int column)
public static IViewContent JumpToFilePosition(string fileName, int line, int column)
{
if (fileName == null || fileName.Length == 0) {
return;
return null;
}
OpenFile(fileName);
IWorkbenchWindow window = GetOpenFile(fileName);
if (window == null) {
return;
return null;
}
IViewContent content = window.ViewContent;
if (content.WorkbenchWindow.SubViewContents == null) {
@ -248,6 +248,7 @@ namespace ICSharpCode.Core @@ -248,6 +248,7 @@ namespace ICSharpCode.Core
window.SwitchView(0);
((IPositionable)content).JumpTo(Math.Max(0, line), Math.Max(0, column));
}
return content;
}
else
{
@ -261,6 +262,7 @@ namespace ICSharpCode.Core @@ -261,6 +262,7 @@ namespace ICSharpCode.Core
window.SwitchView(i);
((IPositionable)viewContent).JumpTo(Math.Max(0, line), Math.Max(0, column));
}
return viewContent;
}
} catch (Exception) {
}
@ -268,7 +270,7 @@ namespace ICSharpCode.Core @@ -268,7 +270,7 @@ namespace ICSharpCode.Core
i++;
}
}
return null;
}
static void OnFileRemoved(FileEventArgs e)

30
src/Main/Base/Project/Src/TextEditor/Bookmarks/ClassMemberBookmark.cs

@ -79,4 +79,34 @@ namespace ICSharpCode.SharpDevelop.Bookmarks @@ -79,4 +79,34 @@ namespace ICSharpCode.SharpDevelop.Bookmarks
DrawIcon(ClassBrowserIconService.GetIcon(method), g, p);
}
}
public class FieldBookmark : ClassMemberBookmark
{
IField field;
public FieldBookmark(IDocument document, IField field) : base(document, field)
{
this.field = field;
}
public override void Draw(IconBarMargin margin, Graphics g, Point p)
{
DrawIcon(ClassBrowserIconService.GetIcon(field), g, p);
}
}
public class EventBookmark : ClassMemberBookmark
{
IEvent @event;
public EventBookmark(IDocument document, IEvent @event) : base(document, @event)
{
this.@event = @event;
}
public override void Draw(IconBarMargin margin, Graphics g, Point p)
{
DrawIcon(ClassBrowserIconService.GetIcon(@event), g, p);
}
}
}

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

@ -27,7 +27,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands @@ -27,7 +27,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
}
}
string GetPropertyName(string fieldName)
public static string GetPropertyName(string fieldName)
{
if (fieldName.StartsWith("_") && fieldName.Length > 1)
return Char.ToUpper(fieldName[1]) + fieldName.Substring(2);

9
src/Main/Base/Project/Src/TextEditor/Commands/CodeGenerators/CodeGenerator.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"/>
@ -142,12 +142,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands @@ -142,12 +142,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Commands
protected void IndentLine()
{
int delta = editActionHandler.Document.FormattingStrategy.IndentLine(editActionHandler, editActionHandler.Document.GetLineNumberForOffset(editActionHandler.Caret.Offset));
if (delta != 0) {
++numOps;
LineSegment caretLine = editActionHandler.Document.GetLineSegmentForOffset(editActionHandler.Caret.Offset);
editActionHandler.Caret.Position = editActionHandler.Document.OffsetToPosition(Math.Min(editActionHandler.Caret.Offset + delta, caretLine.Offset + caretLine.Length));
}
editActionHandler.Document.FormattingStrategy.IndentLine(editActionHandler, editActionHandler.Caret.Line);
}
}
}

12
src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorDisplayBinding.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"/>
@ -443,8 +443,8 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -443,8 +443,8 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
{
try {
textAreaControl.Document.FoldingManager.UpdateFoldings(TitleName, parseInfo);
textAreaControl.ActiveTextAreaControl.TextArea.Refresh(textAreaControl.ActiveTextAreaControl.TextArea.FoldMargin);
UpdateClassMemberBookmarks(parseInfo);
textAreaControl.ActiveTextAreaControl.TextArea.Refresh(textAreaControl.ActiveTextAreaControl.TextArea.FoldMargin);
} catch (Exception ex) {
MessageService.ShowError(ex);
}
@ -464,6 +464,14 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -464,6 +464,14 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
if (m.Region == null || m.Region.BeginLine <= 0) continue;
bm.AddMark(new Bookmarks.PropertyBookmark(textAreaControl.Document, m));
}
foreach (IField f in c.Fields) {
if (f.Region == null || f.Region.BeginLine <= 0) continue;
bm.AddMark(new Bookmarks.FieldBookmark(textAreaControl.Document, f));
}
foreach (IEvent e in c.Events) {
if (e.Region == null || e.Region.BeginLine <= 0) continue;
bm.AddMark(new Bookmarks.EventBookmark(textAreaControl.Document, e));
}
}
}

Loading…
Cancel
Save