发布语法加亮编辑器控件(SyntaxTextBox)

2024-02-27 02:58

本文主要是介绍发布语法加亮编辑器控件(SyntaxTextBox),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        一直对语法加亮编辑器控件非常感兴趣,想弄个过来在项目中show一把以挣点眼球。遂上网搜搜,发现ActiproSoftware公司的SyntaxEditor是个好冬冬啊(SnippetCompiler就是用的这个控件),VS的功能它都基本实现了,流口水啊(http://www.chinaaspx.com/comm/dotnetbbs/Showtopic.aspx?Forum_ID=45&id=146786&PPage=8&Page=1)。
        但好东西都是要银子买的,人家要银子3000大洋,咱们穷人没办法,没银两,又搜不到,只好自己动手编了。边上网参考网友代码,加上废寝忘食三五天,雏形出来了,能满足一般性的代码加亮展示要求,免费奉送!

功能概述
     语法加亮
     加亮规则由XML文件进行配置
     AutoComplete(ctrl+shift+space)
     可控步数Undo/Redo
     全选、拷贝、粘贴快键(Ctrl+A, Ctrl+C, Ctrl+V)
     直接操作RTF文档格式,提高效率

效果 
   

示例代码

    this .txtSyntax.ConfigFile  =   " csharp.xml " ;

   
this .txtSyntax.AcceptsTab  =   true ;
   
this .txtSyntax.CaseSensitive  =   false ;
   
this .txtSyntax.Dock  =  System.Windows.Forms.DockStyle.Fill;
   
this .txtSyntax.FilterAutoComplete  =   true ;
   
this .txtSyntax.Location  =   new  System.Drawing.Point( 0 0 );
   
this .txtSyntax.MaxUndoRedoSteps  =   50 ;
   
this .txtSyntax.Name  =   " txtSyntax " ;
   
this .txtSyntax.Size  =   new  System.Drawing.Size( 464 257 );
   
this .txtSyntax.TabIndex  =   0 ;
   
this .txtSyntax.Text  =   " if then while begin " ;
   
this .txtSyntax.WordWrap  =   false ;


XML配置文件示例(csharp.xml)

<?xml version="1.0" encoding="utf-8"?>
<DescriptorCollection>
  <Descriptor>
    <Token>/*</Token>
    <CloseToken>*/</CloseToken>
    <Color>0,100,0</Color>
    <Font>宋体,20</Font>
    <DescriptorType>ToCloseToken</DescriptorType>
    <DescriptorRecognition>StartsWith</DescriptorRecognition>
    <UseForAutoComplete>False</UseForAutoComplete>
  </Descriptor>
  <Descriptor>
    <Token>[</Token>
    <CloseToken>]</CloseToken>
    <Color>255,0,0</Color>
    <Font>宋体,20</Font>
    <DescriptorType>ToCloseToken</DescriptorType>
    <DescriptorRecognition>StartsWith</DescriptorRecognition>
    <UseForAutoComplete>False</UseForAutoComplete>
  </Descriptor>
  <Descriptor>
    <Token>public</Token>
    <CloseToken />
    <Color>0,0,255</Color>
    <Font>宋体,20</Font>
    <DescriptorType>Word</DescriptorType>
    <DescriptorRecognition>WholeWord</DescriptorRecognition>
    <UseForAutoComplete>True</UseForAutoComplete>
  </Descriptor>
  ...
</DescriptorCollection>


下载地址:/Files/surfsky/SyntaxTextBox.rar

这篇关于发布语法加亮编辑器控件(SyntaxTextBox)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

C++语法知识点合集:11.模板

文章目录 一、非类型模板参数1.非类型模板参数的基本形式2.指针作为非类型模板参数3.引用作为非类型模板参数4.非类型模板参数的限制和陷阱:5.几个问题 二、模板的特化1.概念2.函数模板特化3.类模板特化(1)全特化(2)偏特化(3)类模板特化应用示例 三、模板分离编译1.概念2.模板的分离编译 模版总结 一、非类型模板参数 模板参数分类类型形参与非类型形参 非类型模板

Java基础回顾系列-第一天-基本语法

基本语法 Java基础回顾系列-第一天-基本语法基础常识人机交互方式常用的DOS命令什么是计算机语言(编程语言) Java语言简介Java程序运行机制Java虚拟机(Java Virtual Machine)垃圾收集机制(Garbage Collection) Java语言的特点面向对象健壮性跨平台性 编写第一个Java程序什么是JDK, JRE下载及安装 JDK配置环境变量 pathHe

Hibernate框架中,使用JDBC语法

/*** 调用存储过程* * @param PRONAME* @return*/public CallableStatement citePro(final String PRONAME){Session session = getCurrentSession();CallableStatement pro = session.doReturningWork(new ReturningWork<C

ORACLE语法-包(package)、存储过程(procedure)、游标(cursor)以及java对Result结果集的处理

陈科肇 示例: 包规范 CREATE OR REPLACE PACKAGE PACK_WMS_YX IS-- Author : CKZ-- Created : 2015/8/28 9:52:29-- Purpose : 同步数据-- Public type declarations,游标 退休订单TYPE retCursor IS REF CURSOR;-- RETURN vi_co_co

小程序button控件上下边框的显示和隐藏

问题 想使用button自带的loading图标功能,但又不需要button显示边框线 button控件有一条淡灰色的边框,在控件上了样式 border:none; 无法让button边框隐藏 代码如下: <button class="btn">.btn{border:none; /*一般使用这个就是可以去掉边框了*/} 解决方案 发现button控件有一个伪元素(::after