是否有一个朗-vb或lang--基本的选择prettify.js 从谷歌?
-
09-06-2019 - |
题
视觉基本的代码不正确地呈现与 prettify.js 从Google。
在堆溢出:
Partial Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'set page title
Page.Title = "Something"
End Sub
End Class
在Visual Studio...
我发现这个的 自述 文件:
我怎么指定哪种语言的我的 代码是吗?
你不需要指定的语言 由于美观列印()将猜测。你的 可以指定一种语言通过指定 语言扩展着的 美观列印类,像这样:
<pre class="prettyprint lang-html"> The lang-* class specifies the language file extensions. Supported file extensions include "c", "cc", "cpp", "cs", "cyc", "java", "bsh", "csh", "sh", "cv", "py", "perl", "pl", "pm", "rb", "js", "html", "html", "xhtml", "xml", "xsl". </pre>
我看没有 lang-vb 或 lang-基本的 选项。没有人知道,如果存在一个作为加?
注:这是关系到 VB.NET 代码块 建议用于堆叠的溢出。
解决方案
/编辑:我重写整个发布。
下面是一个非常完整的解决方案的VB突出的问题。所以如果有什么更好的, 请 使用它。VB法突出肯定是想要的。
我还添加了一个码的例子有一些复杂的代码文本,突出显示正确。但是,我甚至还没有试图获得XLinq的权利。可能仍然的工作,虽然。的 关键词清单 取自MSDN。上下文关键字不包括在内。你知道的 GetXmlNamespace
操作者?
算法知道文字型的人物。它也应该能够处理标识符的类型人物,但我没有测试过这些。注意代码的工作上 HTML.因此,&, < 并>需要被解读为命名(!) 实体,不是单一的字符。
对不起长regex.
var highlightVB = function(code) {
var regex = /("(?:""|[^"])+"c?)|('.*$)|#.+?#|(&[HO])?\d+(\.\d*)?(e[+-]?\d+)?U?([SILDFR%@!#]|&)?|\.\d+[FR!#]?|\s+|\w+|&|<|>|([-+*/\\^$@!#%&<>()\[\]{}.,:=]+)/gi;
var lines = code.split("\n");
for (var i = 0; i < lines.length; i++) {
var line = lines[i];
var tokens;
var result = "";
while (tokens = regex.exec(line)) {
var tok = getToken(tokens);
switch (tok.charAt(0)) {
case '"':
if (tok.charAt(tok.length - 1) == "c")
result += span("char", tok);
else
result += span("string", tok);
break;
case "'":
result += span("comment", tok);
break;
case '#':
result += span("date", tok);
break;
default:
var c1 = tok.charAt(0);
if (isDigit(c1) ||
tok.length > 1 && c1 == '.' && isDigit(tok.charAt(1)) ||
tok.length > 5 && (tok.indexOf("&") == 0 &&
tok.charAt(5) == 'H' || tok.charAt(5) == 'O')
)
result += span("number", tok);
else if (isKeyword(tok))
result += span("keyword", tok);
else
result += tok;
break;
}
}
lines[i] = result;
}
return lines.join("\n");
}
var keywords = [
"addhandler", "addressof", "alias", "and", "andalso", "as", "boolean", "byref",
"byte", "byval", "call", "case", "catch", "cbool", "cbyte", "cchar", "cdate",
"cdec", "cdbl", "char", "cint", "class", "clng", "cobj", "const", "continue",
"csbyte", "cshort", "csng", "cstr", "ctype", "cuint", "culng", "cushort", "date",
"decimal", "declare", "default", "delegate", "dim", "directcast", "do", "double",
"each", "else", "elseif", "end", "endif", "enum", "erase", "error", "event",
"exit", "false", "finally", "for", "friend", "function", "get", "gettype",
"getxmlnamespace", "global", "gosub", "goto", "handles", "if", "if",
"implements", "imports", "in", "inherits", "integer", "interface", "is", "isnot",
"let", "lib", "like", "long", "loop", "me", "mod", "module", "mustinherit",
"mustoverride", "mybase", "myclass", "namespace", "narrowing", "new", "next",
"not", "nothing", "notinheritable", "notoverridable", "object", "of", "on",
"operator", "option", "optional", "or", "orelse", "overloads", "overridable",
"overrides", "paramarray", "partial", "private", "property", "protected",
"public", "raiseevent", "readonly", "redim", "rem", "removehandler", "resume",
"return", "sbyte", "select", "set", "shadows", "shared", "short", "single",
"static", "step", "stop", "string", "structure", "sub", "synclock", "then",
"throw", "to", "true", "try", "trycast", "typeof", "variant", "wend", "uinteger",
"ulong", "ushort", "using", "when", "while", "widening", "with", "withevents",
"writeonly", "xor", "#const", "#else", "#elseif", "#end", "#if"
]
var isKeyword = function(token) {
return keywords.indexOf(token.toLowerCase()) != -1;
}
var isDigit = function(c) {
return c >= '0' && c <= '9';
}
var getToken = function(tokens) {
for (var i = 0; i < tokens.length; i++)
if (tokens[i] != undefined)
return tokens[i];
return null;
}
var span = function(class, text) {
return "<span class=\"" + class + "\">" + text + "</span>";
}
代码进行测试:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
'set page title
Page.Title = "Something"
Dim r As String = "Say ""Hello"""
Dim i As Integer = 1234
Dim d As Double = 1.23
Dim s As Single = .123F
Dim l As Long = 123L
Dim ul As ULong = 123UL
Dim c As Char = "x"c
Dim h As Integer = &H0
Dim t As Date = #5/31/1993 1:15:30 PM#
Dim f As Single = 1.32e-5F
End Sub
其他提示
美化并支持VB的意见,因为8月2009年。
获得vb语法突出显示正常工作需要三件事情;
<script type="text/javascript" src="/External/css/prettify/prettify.js"></script>
<script type="text/javascript" src="/External/css/prettify/lang-vb.js"></script>
和一个预先阻绕你的代码如:
<PRE class="prettyprint lang-vb">
Function SomeVB() as string
' do stuff
i = i + 1
End Function
</PRE>
计算器丢失的lang-vb.js 列入,并且能够指定哪种语言,通过降价,即: class="prettyprint lang-vb"
这就是为什么它不工作在这里。
对于细节上的问题:看看 的美化问题的日志
在此期间,你可以把一个额外的评论字在你的评论意见,以让它看起来好。例如:
Sub TestMethod()
'Method body goes here'
End Sub
你还需要逃避内部评论人物在正常vb-时尚:
Sub TestMethod2()
'Here''s another comment'
End Sub
美化仍然把它作为一个字符串而不是发表评论,但至少它看起来好。
另一种方法,我看到的是启动一个额外的评论 '//
, 像这样的:
Sub TestMethod3()
''// one final comment
End Sub
然后这是处理像一个意见,但你必须处理C式评论的标记