📄 bookmarkconverter.cs
字号:
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision: 915 $</version>
// </file>
using System;
using System.ComponentModel;
using System.Text;
using System.Globalization;
using ICSharpCode.Core;
using ICSharpCode.TextEditor.Document;
namespace ICSharpCode.SharpDevelop.Bookmarks
{
public sealed class BookmarkConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
if (sourceType == typeof(string)) {
return true;
} else {
return base.CanConvertFrom(context, sourceType);
}
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
if (value is string) {
string[] v = ((string)value).Split('|');
string fileName = v[1];
int lineNumber = int.Parse(v[2], culture);
if (lineNumber < 0)
return null;
SDBookmark bookmark;
switch (v[0]) {
case "Breakpoint":
bookmark = new BreakpointBookmark(fileName, null, lineNumber);
break;
default:
bookmark = new SDBookmark(fileName, null, lineNumber);
break;
}
bookmark.IsEnabled = bool.Parse(v[3]);
return bookmark;
} else {
return base.ConvertFrom(context, culture, value);
}
}
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
{
SDBookmark bookmark = value as SDBookmark;
if (destinationType == typeof(string) && bookmark != null) {
StringBuilder b = new StringBuilder();
if (bookmark is BreakpointBookmark) {
b.Append("Breakpoint");
} else {
b.Append("Bookmark");
}
b.Append('|');
b.Append(bookmark.FileName);
b.Append('|');
b.Append(bookmark.LineNumber);
b.Append('|');
b.Append(bookmark.IsEnabled.ToString());
return b.ToString();
} else {
return base.ConvertTo(context, culture, value, destinationType);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -