我在互联网上看了一遍又一遍,但找不到 AvalonEdit 的 SQL.vshd 文件,我使用的是旧格式版本,但它使编辑器出现错误(它不再显示完全没有),所以我想知道也许有人已经完成了这样的文件,因为如果已经完成,我不想浪费时间做这件事。
如果你能与我分享你的,我将不胜感激:)
提前致谢
最佳答案
一步一步:
将 Avalon Editor 添加到您的窗口,它看起来像这样:
<avalonEdit:TextEditor
xmlns:avalonEdit="http://icsharpcode.net/sharpdevelop/avalonedit"
Name="MyAvalonEdit"
FontFamily="Consolas"
FontSize="10pt"
ShowLineNumbers="True"
LineNumbersForeground="#FF2B91AF" />
在你的项目中添加一个新的xml文件(放在'resources'文件夹中,或者你可以把它放在任何地方),并将它命名为sql.xshd(xml语法高亮定义)(或者你可以随便命名你喜欢)
在您的窗口加载中添加以下代码以连接语法 突出显示;适本地替换 DefaultNameSpace 和 Folder
private void Window_Loaded(object sender, RoutedEventArgs e)
{
using (var stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("DefaultNamespace.Folder.sql.xshd"))
{
using (var reader = new System.Xml.XmlTextReader(stream))
{
MyAvalonEdit.SyntaxHighlighting =
ICSharpCode.AvalonEdit.Highlighting.Xshd.HighlightingLoader.Load(reader,
ICSharpCode.AvalonEdit.Highlighting.HighlightingManager.Instance);
}
}
}
如果您对资源名称有疑问,您可以找到名称 程序集中的所有资源:
// Get names of embedded resources
var resourceNames = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();
我从 Dirk Bahle 的 open source editor 找到了一个很好的 SQL xshd项目在这里:https://github.com/Dirkster99/Edi/blob/master/Edi/Edi/AvalonEdit/Highlighting/SQL.xshd
<?xml version="1.0"?>
<!-- Shades of Red-Brown: #a31515, #cf4315, #ffb96e, #ffdc95 -->
<!-- Shades of Bright-Blue: #0077dc #008fe4 #8dbbdc #8de8ff -->
<SyntaxDefinition name="SQL" extensions=".sql"
xmlns="http://icsharpcode.net/sharpdevelop/syntaxdefinition/2008">
<!-- T-SQL Reference: http://msdn.microsoft.com/de-de/library/ms189826%28v=sql.90%29.aspx -->
<Color name="Digits" foreground="DarkBlue" exampleText="3.1415f"/>
<Color name="Comment" foreground="Green" exampleText="string text = "Hello, World!""/>
<Color name="Punctuation" foreground="Red" exampleText="string text = "Hello, World!""/>
<Color name="String" foreground="Olive" exampleText="string text = "Hello, World!""/>
<Color name="String2" foreground="#993" exampleText="string text = "Hello, World!""/>
<Color name="Keyword" fontWeight="bold" foreground="Blue" exampleText="SELECT"/>
<Color name="Keyword1" fontWeight="normal" foreground="Blue" exampleText="NOCOUNT"/>
<Color name="GoKeyword" fontWeight="bold" foreground="Red" exampleText="GO"/>
<Color name="MethodCall" foreground="MidnightBlue" fontWeight="bold" />
<Color name="Variable" foreground="Red" exampleText="@Variable" />
<Color name="Variable1" foreground="Red" exampleText="@@Variable" />
<Color name="ObjectReference" foreground="Teal" exampleText="Customer.Name" />
<Color name="ObjectReference1" foreground="Teal" exampleText="dbo.Customer.Name" />
<Color name="ObjectReferenceInBrackets" foreground="Teal" exampleText="[Customer].[Name]" />
<Color name="ObjectReferenceInBrackets1" foreground="Teal" exampleText="[dbo].[Customer].[Name]" />
<Color name="CommentMarkerSetTodo" foreground="Red" fontWeight="bold" />
<Color name="CommentMarkerSetHackUndone" foreground="#E0E000" fontWeight="bold" />
<RuleSet name="CommentMarkerSet">
<Keywords color="CommentMarkerSetTodo">
<Word>TODO</Word>
<Word>FIXME</Word>
</Keywords>
<Keywords color="CommentMarkerSetHackUndone">
<Word>HACK</Word>
<Word>UNDONE</Word>
</Keywords>
</RuleSet>
<RuleSet ignoreCase="true">
<Span color="String" multiline="true" >
<Begin>'</Begin>
<End>'</End>
</Span>
<Span color="String2" multiline="true" >
<Begin>"</Begin>
<End>"</End>
</Span>
<!-- span for escape sequences -->
<Span color="Comment" begin="--" end="\n" ruleSet="CommentMarkerSet"/>
<Span color="Comment" multiline="true" ruleSet="CommentMarkerSet">
<Begin>/\*</Begin>
<End>\*/</End>
</Span>
<Keywords color="Keyword" >
<Word>ABORT</Word>
<Word>BETWEEN</Word>
<Word>CRASH</Word>
<Word>DIGITS</Word>
<Word>ACCEPT</Word>
<Word>BINARY_INTEGER</Word>
<Word>CREATE</Word>
<Word>DISPOSE</Word>
<Word>ACCESS</Word>
<Word>BODY</Word>
<Word>CURRENT</Word>
<Word>DISTINCT</Word>
<Word>ADD</Word>
<Word>BOOLEAN</Word>
<Word>CURRVAL</Word>
<Word>DO</Word>
<Word>ALL</Word>
<Word>BY</Word>
<Word>CURSOR</Word>
<Word>DROP</Word>
<Word>ALTER</Word>
<Word>CASE</Word>
<Word>DATABASE</Word>
<Word>ELSE</Word>
<Word>AND</Word>
<Word>CHAR</Word>
<Word>DATA_BASE</Word>
<Word>ELSIF</Word>
<Word>ANY</Word>
<Word>CHAR_BASE</Word>
<Word>DATE</Word>
<Word>END</Word>
<Word>ARRAY</Word>
<Word>CHECK</Word>
<Word>DBA</Word>
<Word>ENTRY</Word>
<Word>ARRAYLEN</Word>
<Word>CLOSE</Word>
<Word>DEBUGOFF</Word>
<Word>EXCEPTION</Word>
<Word>AS</Word>
<Word>CLUSTER</Word>
<Word>DEBUGON</Word>
<Word>EXCEPTION_INIT</Word>
<Word>ASC</Word>
<Word>CLUSTERS</Word>
<Word>DECLARE</Word>
<Word>EXISTS</Word>
<Word>ASSERT</Word>
<Word>COLAUTH</Word>
<Word>DECIMAL</Word>
<Word>EXIT</Word>
<Word>ASSIGN</Word>
<Word>COLUMNS</Word>
<Word>DEFAULT</Word>
<Word>FALSE</Word>
<Word>AT</Word>
<Word>COMMIT</Word>
<Word>DEFINITION</Word>
<Word>FETCH</Word>
<Word>AUTHORIZATION</Word>
<Word>COMPRESS</Word>
<Word>DELAY</Word>
<Word>FLOAT</Word>
<Word>AVG</Word>
<Word>CONNECT</Word>
<Word>DELETE</Word>
<Word>FOR</Word>
<Word>BASE_TABLE</Word>
<Word>CONSTANT</Word>
<Word>DELTA</Word>
<Word>FORM</Word>
<Word>BEGIN</Word>
<Word>COUNT</Word>
<Word>DESC</Word>
<Word>FROM</Word>
<Word>FUNCTION</Word>
<Word>NEW</Word>
<Word>RELEASE</Word>
<Word>SUM</Word>
<Word>GENERIC</Word>
<Word>NEXTVAL</Word>
<Word>REMR</Word>
<Word>TABAUTH</Word>
<Word>GOTO</Word>
<Word>NOCOMPRESS</Word>
<Word>RENAME</Word>
<Word>TABLE</Word>
<Word>GRANT</Word>
<Word>NOT</Word>
<Word>RESOURCE</Word>
<Word>TABLES</Word>
<Word>GROUP</Word>
<Word>NULL</Word>
<Word>RETURN</Word>
<Word>TASK</Word>
<Word>HAVING</Word>
<Word>NUMBER</Word>
<Word>REVERSE</Word>
<Word>TERMINATE</Word>
<Word>IDENTIFIED</Word>
<Word>NUMBER_BASE</Word>
<Word>REVOKE</Word>
<Word>THEN</Word>
<Word>IF</Word>
<Word>OF</Word>
<Word>ROLLBACK</Word>
<Word>TO</Word>
<Word>IN</Word>
<Word>ON</Word>
<Word>ROWID</Word>
<Word>TRUE</Word>
<Word>INDEX</Word>
<Word>OPEN</Word>
<Word>ROWLABEL</Word>
<Word>TYPE</Word>
<Word>INDEXES</Word>
<Word>OPTION</Word>
<Word>ROWNUM</Word>
<Word>UNION</Word>
<Word>INDICATOR</Word>
<Word>OR</Word>
<Word>ROWTYPE</Word>
<Word>UNIQUE</Word>
<Word>INSERT</Word>
<Word>ORDER</Word>
<Word>RUN</Word>
<Word>UPDATE</Word>
<Word>INTEGER</Word>
<Word>OTHERS</Word>
<Word>SAVEPOINT</Word>
<Word>USE</Word>
<Word>INTERSECT</Word>
<Word>OUT</Word>
<Word>SCHEMA</Word>
<Word>VALUES</Word>
<Word>INTO</Word>
<Word>PACKAGE</Word>
<Word>SELECT</Word>
<Word>VARCHAR</Word>
<Word>IS</Word>
<Word>PARTITION</Word>
<Word>SEPARATE</Word>
<Word>VARCHAR2</Word>
<Word>LEVEL</Word>
<Word>PCTFREE</Word>
<Word>SET</Word>
<Word>VARIANCE</Word>
<Word>LIKE</Word>
<Word>POSITIVE</Word>
<Word>SIZE</Word>
<Word>VIEW</Word>
<Word>LIMITED</Word>
<Word>PRAGMA</Word>
<Word>SMALLINT</Word>
<Word>VIEWS</Word>
<Word>LOOP</Word>
<Word>PRIOR</Word>
<Word>SPACE</Word>
<Word>WHEN</Word>
<Word>MAX</Word>
<Word>PRIVATE</Word>
<Word>SQL</Word>
<Word>WHERE</Word>
<Word>MIN</Word>
<Word>PROCEDURE</Word>
<Word>SQLCODE</Word>
<Word>WHILE</Word>
<Word>MINUS</Word>
<Word>PUBLIC</Word>
<Word>SQLERRM</Word>
<Word>WITH</Word>
<Word>MLSLABEL</Word>
<Word>RAISE</Word>
<Word>START</Word>
<Word>WORK</Word>
<Word>MOD</Word>
<Word>RANGE</Word>
<Word>STATEMENT</Word>
<Word>XOR</Word>
<Word>MODE</Word>
<Word>REAL</Word>
<Word>STDDEV</Word>
<Word>NATURAL</Word>
<Word>RECORD</Word>
<Word>SUBTYPE</Word>
<Word>TRUNCATE</Word>
</Keywords>
<Keywords color="Keyword1">
<Word>NOCOUNT</Word>
</Keywords>
<Keywords color="GoKeyword" >
<Word>GO</Word>
</Keywords>
<Rule color="ObjectReference1">([\d\w]+)\.([\d\w]+)\.([\d\w]+)</Rule>
<Rule color="ObjectReference">([\d\w]+)\.([\d\w]+)</Rule>
<Rule color="ObjectReferenceInBrackets1">([\d\w]+)\.([\d\w]+)\.([\d\w]+)</Rule>
<Rule color="ObjectReferenceInBrackets">\[([\d\w]+)\]\.\[([\d\w]+)\]\.\[([\d\w]+)\]</Rule>
<Rule color="ObjectReferenceInBrackets">\[([\d\w]+)\]\.\[([\d\w]+)\]</Rule>
<Rule color="Punctuation">
[?,.;()\[\]{}+\-/%*<>^+~!|&]+
</Rule>
<Rule color="MethodCall">[\d\w_]+(?=(\s*\())</Rule>
<Rule color="Variable1">@@([\w]+)</Rule>
<Rule color="Variable">@([\w]+)</Rule>
<!-- Digits -->
<Rule color="Digits">
\b0[xX][0-9a-fA-F]+ # hex number
|
( \b\d+(\.[0-9]+)? #number with optional floating point
| \.[0-9]+ #or just starting with floating point
)
([eE][+-]?[0-9]+)? # optional exponent
</Rule>
</RuleSet>
</SyntaxDefinition>
关于c# - WPF AvalonEdit SQL xhsd 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4255398/
在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这
如何在ruby中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL
rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送
我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha
C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.
我是Ruby的新手。我试过查看在线文档,但没有找到任何有效的方法。我想在以下HTTP请求botget_response()和get()中包含一个用户代理。有人可以指出我正确的方向吗?#PreliminarycheckthatProggitisupcheck=Net::HTTP.get_response(URI.parse(proggit_url))ifcheck.code!="200"puts"ErrorcontactingProggit"returnend#Attempttogetthejsonresponse=Net::HTTP.get(URI.parse(proggit_url)
在我的路线文件中我有:match'graphs/(:id(/:action))'=>'graphs#(:action)'如果是GET请求(工作)或POST请求(不工作),我想匹配它我知道我可以使用以下方法在资源中声明POST请求:post'/'=>:show,:on=>:member但是我怎样才能为比赛做到这一点呢?谢谢。 最佳答案 如果你同时想要POST和GETmatch'graphs/(:id(/:action))'=>'graphs#(:action)',:via=>[:get,:post]编辑默认值可以设置如下match'g
我如何做Ruby方法"Flatten"RubyMethod在C#中。此方法将锯齿状数组展平为一维数组。例如:s=[1,2,3]#=>[1,2,3]t=[4,5,6,[7,8]]#=>[4,5,6,[7,8]]a=[s,t,9,10]#=>[[1,2,3],[4,5,6,[7,8]],9,10]a.flatten#=>[1,2,3,4,5,6,7,8,9,10 最佳答案 递归解决方案:IEnumerableFlatten(IEnumerablearray){foreach(variteminarray){if(itemisIEnume
我试图像这样在我的测试用例中执行获取:request.env['CONTENT_TYPE']='application/json'get:index,:application_name=>"Heka"虽然,它失败了:ActionView::MissingTemplate:Missingtemplatealarm_events/indexwith{:handlers=>[:builder,:haml,:erb,:rjs,:rhtml,:rxml],:locale=>[:en,:en],:formats=>[:html]尽管在我的Controller中我有:respond_to:html,
我最近从C#转向了Ruby,我发现自己无法制作可折叠的标记代码区域。我只是想到做这种事情应该没问题:classExamplebegin#agroupofmethodsdefmethod1..enddefmethod2..endenddefmethod3..endend...但是这样做真的可以吗?method1和method2最终与method3是同一种东西吗?还是有一些我还没有见过的用于执行此操作的Ruby惯用语? 最佳答案 正如其他人所说,这不会改变方法定义。但是,如果要标记方法组,为什么不使用Ruby语义来标记它们呢?您可以使用