Tag: 语法高亮

C#:在不选择文本的情况下更改WinForm RichTextBox的字体样式

我在我的代码中使用RichTextBox ,我在其中显示语法突出显示的代码。 现在,在每次按键时,我都必须重新解析所有令牌并重新为它们重新着色。 但是,在WinForm richtextbox为单个单词着色的唯一方法是逐个选择这些单词并使用SelectionFont对它们进行着色。 但是如果用户输入的速度非常快,那么我选择单个单词会导致非常明显的闪烁(所选单词具有Windows蓝色背景,导致闪烁)。 有没有什么方法可以在不选择它们的情况下为单个单词着色(从而在所选文本周围产生蓝色高光)。 我尝试使用SuspendLayout()在我的着色期间禁用渲染,但这没有帮助。 提前致谢! 这是我的代码: 码: private void editBox_TextChanged(object sender, EventArgs e) { syntaxHighlightFromRegex(); } private void syntaxHighlightFromRegex() { this.editBox.SuspendLayout(); string REG_EX_KEYWORDS = @”\bSELECT\b|\bFROM\b|\bWHERE\b|\bCONTAINS\b|\bIN\b|\bIS\b|\bLIKE\b|\bNONE\b|\bNOT\b|\bNULL\b|\bOR\b”; matchRExpression(this.editBox, REG_EX_KEYWORDS, KeywordsSyntaxHighlightFont, KeywordSyntaxHighlightFontColor); } private void matchRExpression(RichTextBox textBox, string regexpression, Font font, Color color) { System.Text.RegularExpressions.MatchCollection matches = Regex.Matches(this.editBox.Text, regexpression, RegexOptions.IgnoreCase); foreach (Match match in […]

以非侵入方式将Resharper代码注释添加到自己的代码中

我想用StringFormatMethod属性标记我的一个方法,因此Resharper语法突出显示它。 我能够通过引用JerBrains.Annotations程序集并添加属性来完成此操作。 但是我发现这是一种非常有创意的方法。 这里并不是每个人都使用JetBrains,它需要将.dll提交给subversion,添加依赖项并使用特定于特定IDE的内容乱丢代码,我讨厌。 我读到了“外部注释”function,但我无法做到。 我不确定我是否做错了,或者解决方案中的项目是否根本不支持(即不是编译的程序集引用)。 那么有没有办法以非侵入方式向项目中的方法添加代码注释? PS这是方法: 使用系统; namespace MyLib { public static class Assert { public static void That(bool condition, string format, params object[] @params) { if (!condition) throw new Exception(string.Format(format, @params)); } } } 这是内容 C:\ Program Files(x86)\ JetBrains \ ReSharper \ v7.1 \ Bin \ ExternalAnnotations \ MyLib.xml: format

Visual Studio Intellisense没有显示某些类

我的Visual Studio没有显示IntelliSense自动完成中的许多可用类。 例如,我正在处理的项目引用了Microsoft.Xna.Framework命名空间,但即使在文件中使用Microsoft.Xna.Framework添加using语句,IntelliSense也无法识别像Texture2D和Rectangle这样的类。 但是,我仍然可以输入它们,而不会出现编译器错误。 知道发生了什么事吗? IntelliSense可检测System.Diagnostics等标准库,但不检测任何外部库。 它不是NameSpace冲突问题,因为IntelliSense中也缺少当前命名空间中的类。 我试过了: 重新启动Visual Studio(使用和不使用关闭选项卡) 删除%LocalAppData%\Microsoft\VisualStudio\14.0\ComponentCacheModel folder 重置导入和导出设置

在WordPress中格式化C#的最佳方法是什么?

嘿博主在那里! 我已经创建了自己托管的Wordpress博客,而且我正在努力找到将C#代码段添加到我博客的最佳方式。 你们都用什么? 我目前正在使用“SyntaxHighlighter Evolved”插件,它在大多数情况下都很有用 – 唯一的问题是切换回Visual Editor会删除所有的whitsepace填充。 我已经尝试在 中包装[sourcecode]标签,但格式化程序无法正常工作。 任何帮助将非常感激。 我花了大约10个小时试图提出一个强大的解决方案,但没有运气。 干杯!

是否有一个IDE进行结构语法突出显示?

这个关于图形编程环境的问题引起了一些启发。 我不认为C ++或C#真的有利于这种类型的环境,但也许有一些东西在那里。 我使用的很多IDE将使用语法高亮来改变关键字,字符串,注释等文本的前景(甚至背景)颜色…… 那里有IDE会突出更大的句法结构吗? 这是我正在考虑的一个例子。 示例代码结构http://img256.imageshack.us/img256/9441/codestructure.png (请不要评论我糟糕的颜色选择……我不是一个平面设计师。) 虽然它不是图形化的拖放环境,但突出显示仍然可以全面了解代码的结构。 就个人而言,在多年的C ++之后学习C#,我仍然发现自己在文件末尾通常有一个类的结尾和命名空间的结尾这一事实,所以函数的结尾是两个级别的(在C ++代码文件中,函数的结尾通常位于缩进的顶层)。 我通过在附近的括号中发表一些评论来帮助自己: } // end class } // end namespace 但在我看来,一些自动着色会使这完全没必要。 无论如何,这已经完成了吗? 如果它是Visual Studio的附加组件,则获得奖励。

知道任何C#语法高亮技巧吗?

我通常喜欢使用黑色背景和白色/彩色文本进行编码,但我从未花时间在Visual Studio中更改语法高亮。 昨天,当我终于解决它时,我的一个更改是将用户类型和用户类型(值类型)更改为不同的颜色。 在没有意识到的情况下,我一直在使用结构类型来传递和返回方法中的数据,而不是我想要的。 语法突出显示的这种变化使得它非常明显地发生了什么。 所以它让我想知道是否有其他设置可以提供类似的帮助。 我通常也会将我的文档和注释颜色设置为更加褪色和被动的颜色,以便实际代码更多地向您跳跃并快速浏览代码。 你有这样的其他提示可以帮助发现问题或使事情更具可读性吗? 注意:(我已经看过这篇文章 ,但我正在寻找更多function性提示并提供帮助而非纯粹的化妆品偏好。)

向IElisonBuffer添加语法突出显示

我正在开发一个项目,我们将C#代码分解为函数并将这些函数存储在IElisonBuffers中 。 我已经将Intellisense连接起来了,缓冲区与其他扩展交互得很好,如下所示: 但是,我无法在这些编辑器中使用语法突出显示。 我通过以下步骤嵌入这些编辑器: 为该文件创建一个IVsInvisibleEditor 。 获取此IVsInvisibleEditor 创建一个IVsCodeWindow并将此IVsCodeWindow的缓冲区设置为IVsCodeWindow中的IVsInvisibleEditor 从此代码窗口获取IWpfTextViewHost 。 这让我回到了“WPF Land”,在那里我能够与传统的跨度互动。 创建IWpfTextViewHost文本视图的SnapshotSpan。 此SnapshotSpan包含单个函数。 创建一个包含SnapshotSpan的IElisionBuffer 。 通过IVsEditorAdaptersFactoryService.CreateVsTextBufferAdapterForSecondaryBuffer()创建一个IElisionBuffer 。 现在我将IVsTextBuffer为IVsTextLines并调用SetLanguageServiceID()传入C#GUID:694DD9B6-B865-4C5B-AD85-86356E9C88DC。 我仔细检查它是否通过GetLanguageServiceID()设置正确,一切看起来都没问题。 我创建了一个IVsTextView并使用新的IVsTextBuffer对其进行初始化。 然后我得到了这个IVsTextView 。 在为IElisionBuffer设置语言服务ID时,是否需要注意哪些特殊步骤? 为了完整起见,这是我正在使用的代码: public CustomEditorViewModel CreateEditor(string filePath, int start, int end) { IVsInvisibleEditor invisibleEditor; ErrorHandler.ThrowOnFailure(this._InvisibleEditorManager.RegisterInvisibleEditor( filePath , pProject: null , dwFlags: (uint)_EDITORREGFLAGS.RIEF_ENABLECACHING , pFactory: null , ppEditor: out invisibleEditor)); var docDataPointer = […]

是否有Eclipse C#Highlight,Code Completion插件

我需要一个用于C#语法高亮的Eclipse 3插件,并希望代码完成。 我正在运行Mac和Windows版本的Eclipse。 我已经评估过“改进C#”,但它似乎没有用。

如何在C#中使用复合格式创建类似于String.Format的自己的方法

我喜欢String.Format如何使用参数将变量注入到它正在格式化的字符串中。 这称为Composite Formating,MSDN将在此处讨论。 我希望这个function与我的日志门面: string foo = “fancy”; string bar = “message”; log.Debug(“My {0} log {1}.”, foo, bar) 我的ILoggerFacade具有以下方法签名: void Debug(T message, params Object[] args); 而且,我知道我可以非常简单地实现这一点: ILog m_Log = \\some logging implementation public void Debug(T message, params Object[] args) { m_Log.Debug(String.Format(message, args)); } 但是,在Visual Studio中,我没有得到{0},{1},…参数的精彩突出显示: 我想ReSharper对他们来说是可以接受的,而且似乎只是忽略了格式化参数而没有提供“intellisense”帮助。 这是不好的,因为将使用外观的其他开发人员将期待这一点。 如何为自定义格式化方法获取参数突出显示和“intellisense”,类似于以下方法: Console.WriteLine(…) String.Format(…) etc… 任何帮助,将不胜感激。

使用itextsharp突出显示pdf中的单词,而不是在浏览器中显示突出显示的单词

使用itextsharp在浏览器中不显示突出显示的单词。 土砖 浏览器 码 List MatchesFound = strategy.GetTextLocations(splitText[i].Trim(), StringComparison.CurrentCultureIgnoreCase); foreach (Rectangle rect in MatchesFound) { float[] quad = { rect.Left – 3.0f, rect.Bottom, rect.Right, rect.Bottom, rect.Left – 3.0f, rect.Top + 1.0f, rect.Right, rect.Top + 1.0f }; //Create our hightlight PdfAnnotation highlight = PdfAnnotation.CreateMarkup(stamper.Writer, rect, null, PdfAnnotation.MARKUP_HIGHLIGHT, quad); //Set the color highlight.Color = BaseColor.YELLOW; //Add the […]