Sharp Development添加语言支持

2024-01-07 13:48

本文主要是介绍Sharp Development添加语言支持,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



来源:  http://blog.csdn.net/xqandpan/article/details/7207832


说到Sharp Development,可能很多人都不知道。这里简单介绍下,Sharp Development是一个轻量级的开源IDE,支持Python,CSharp等多种语言的程序开发。支持Silverlight、WPF的开发。同时也具备Debug功能,可以方便的调试代码。虽然它的Debug不如Visual Studio的强大,但是作为开源免费的IDE来说,还是相当不错了。

既然Sharp Development是开源的,你当然可以免费使用并下载一份它的源代码来慢慢研究。Sharp Development的官方地址为:http://www.icsharpcode.net/OpenSource/SD/ 。你可以在这里下载到各个版本的Sharp Development,以及他们的源代码。

下面进入主题,我们来探讨下如何修改Sharp Development的源代码,让它的AvalonEditor支持Sql的语法。AvalonEditor默认已经支持多种语法了,详细列表如下:ASP.NET,Boo,Coco/R grammars,C++,C#,HTML,Java,JavaScript,Patch files,PHP,TeX,VB以及XML。

1.从网站上下载SQL语法文件,文件后缀名为xshd。其实就是一个XML文件。你可以从以下两个网站获取到这个文件:

http://www.koders.com/noncode/fid4DD63AAA64622BDAECFE0C5B94AE3FB3B4FD0B77.aspx

http://minisqlquery.codeplex.com/SourceControl/changeset/view/50578#977605

如果觉得这两个文件都不完美,也可以根据实际情况,自己做一个xshd文件,格式可以参照这两个文件的格式。

2.将xshd文件添加到源代码中

从Sharp Development的网站上下载Sharp Development的源代码并解压。然后进入以下文件夹:

解压文件路径\src\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\Highlighting\Resources

将准备好的xshd文件拷贝到这个目录下。

下面要开始修改源代码了,仔细看哦。

2.1 修改项目文件,让我们拷贝的文件被包括到项目中去

用你习惯的文本编辑器打开:解压文件路径\src\Libraries\AvalonEdit\ICSharpCode.AvalonEdit目录下的ICSharpCode.AvalonEdit.csproj文件。在文件中找到如下字符串:<EmbeddedResource Include="Highlighting\Resources\XmlDoc.xshd" />。然后在这句之后回车新增一行,填写以下内容:<EmbeddedResource Include="Highlighting\Resources\TSQL-Mode.xshd" />,注意,这里的TSQL-Mode.xshd是我给文件取的文件名,前面的Highlighting\Resources表示文件的相对路径。

别忘记保存文件哦。

2.2 修改代码文件,让AvalonEdit控件认识我们新增的语法文件

用你习惯的文本编辑器打开:解压文件路径\src\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\Highlighting\Resources目录下的Resources.cs文件。找到以下函数:internal static void RegisterBuiltInHighlightings(HighlightingManager.DefaultHighlightingManager hlm)。然后在函数中新增一行:

hlm.RegisterHighlighting("SQL", new[] { ".sql" }, "TSQL-Mode.xshd");

这一行的代码的意思,是在highlightmodel里面,注册一个hightlight类型,文件类型是.sql,model名称是SQL,对应的xshd语法文件为TSQL-Mode.xshd。

别忘记保存文件哦。



好了,文件修改完了,接下来就是激动人心的时刻。没错,就是开始编译源代码。仔细看你解压后的源代码文件的根目录,你会看到4个bat文件。分别是:buildSetupAndRunTest.bat,clean.bat,debugbuild.bat,releeasebuild.bat.没错,这4个文件就是我们编译源代码需要的指令。从文件名,一眼就能看出各个文件的用途了。这么简单的事情,不用我在这里多介绍了吧?

OK,直接开始。如果你以前没有运行过这几个bat文件中的任意一个,那么你可以直接运行debugbuild.bat或者是releasebuild.bat。推荐运行releasebuild.bat,呵呵。运行之后,bat文件会自动打开windows控制台窗口,在里面会输出很多很多看不懂的信息。不用管这些信息,当编译完成后,它会告诉你结果的。

编辑完成了之后,就可以去找我们的劳动成果了。编译后的dll文件在bin目录下哦。ICSharpCode.AvalonEdit.dll这个文件,就是我们修改源代码并编译了的结果了。

怎么用不用我提醒了吧?

这篇关于Sharp Development添加语言支持的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/580111

相关文章

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

Go语言使用sync.Mutex实现资源加锁

《Go语言使用sync.Mutex实现资源加锁》数据共享是一把双刃剑,Go语言为我们提供了sync.Mutex,一种最基础也是最常用的加锁方式,用于保证在任意时刻只有一个goroutine能访问共享... 目录一、什么是 Mutex二、为什么需要加锁三、实战案例:并发安全的计数器1. 未加锁示例(存在竞态)

C语言自定义类型之联合和枚举解读

《C语言自定义类型之联合和枚举解读》联合体共享内存,大小由最大成员决定,遵循对齐规则;枚举类型列举可能值,提升可读性和类型安全性,两者在C语言中用于优化内存和程序效率... 目录一、联合体1.1 联合体类型的声明1.2 联合体的特点1.2.1 特点11.2.2 特点21.2.3 特点31.3 联合体的大小1

Go语言使用select监听多个channel的示例详解

《Go语言使用select监听多个channel的示例详解》本文将聚焦Go并发中的一个强力工具,select,这篇文章将通过实际案例学习如何优雅地监听多个Channel,实现多任务处理、超时控制和非阻... 目录一、前言:为什么要使用select二、实战目标三、案例代码:监听两个任务结果和超时四、运行示例五

C语言中%zu的用法解读

《C语言中%zu的用法解读》size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发... 目录size_t 类型与 %zu 占位符%zu 的用途替代占位符的风险兼容性说明其他相关占位符验证示