4

让我附上一张图片来解释:

在此处输入图像描述

因此,在 Mako ( <%block, <%include, ets.) 的任何标记之后,它会使后续的 HTML 代码完全变成黑色。我不知道该怎么办。Options -> Style Options调整没有帮助。

我试图通过参与评论来禁用文件asp中的语法着色。我得到的结果是已经从 . 但是后面的代码还是黑的。stylers.xml<LexerType name="asp" desc="asp" ext="asp">....</LexerType>aspOptions -> Style Options

正如Mako 网站所说,可以设置lexer.html.mako=1. SciTEGlobal.properties我这样做并尝试将SciTEGlobal.properties其放入notepad++.exe生活的目录或Application Data\Notepad++目录中。它没有帮助。

如何设置 Notepad++ 至少将 Mako 标签视为 HTML 文档中的简单字符串?不影响任何其他 HTML 标记。

4

7 回答 7

4

安装“Python Script”插件后,附加到文件“startup.py”,如下所示:

# Enable HTML Mako Template Syntax Highlighting
def enableMako(args):
    editor.setProperty('lexer.html.mako', '1')
notepad.callback(enableMako, [NOTIFICATION.READY, NOTIFICATION.BUFFERACTIVATED])
enableMako({})

默认文件位置:C:\Program Files\Notepad++\plugins\PythonScript\scripts\startup.py

由于 mako 选项是每个缓冲区的,因此每次我们开始查看一个时都必须激活它。我们通过注册回调函数“enableMako”来做到这一点。

另外,为了在打开 Notepad++ 后立即生效,我们需要在以下菜单中将“Initialisation”设置为“ATSTARTUP”:Plugins -> Python Script -> Configuration

最后,要自动将此语法突出显示应用于 .mako 文件,请转到 Settings -> Style Configurator,从语言列表中选择“HTML”,并将 mako 附加到“User ext”。场地。

于 2014-03-08T18:35:26.140 回答
0

这是我使用的解决方法:

1) 我遵循了使用 Python Scripts Plugin ( http://npppythonscript.sourceforge.net/ ) 的建议。

2) 在名为 CompareClearResultWrapper.py 的 Python 脚本中包装“比较清除结果命令”(代码在最后)。

3)通过Plugin Configuration为脚本CompareClearResultWrapper添加一个MenuItem

4) 将插件命令映射到快捷键 CTRL+ALT+D。

5)如果你比较右视图中的最后一个文件,似乎有一些问题..

这是脚本 CompareClearResultWrapper 的代码:

    def clearResultWrapper():
        console.clear()
        console.show()
        for f in notepad.getFiles():
            console.write( "filename, bufferID, index, view = %s\r\n" % str( f ) )
        bufferID_Lang = []
        for view in ( 0, 1 ):
            index = notepad.getCurrentDocIndex( view )
            notepad.activateIndex( view, index )
            fname = notepad.getCurrentFilename()
            bufferID = notepad.getCurrentBufferID()
            langType = notepad.getLangType( bufferID )
            bufferID_Lang.append( ( view, index, bufferID, langType ) )
            console.write( "view, fname, index, bufferID, langType = %s\r\n" % str( ( view, fname, index, bufferID, langType ) ) )
        notepad.runPluginCommand( 'Compare', 'Clear Results' )
        for ( view, index, bufferID, langType ) in bufferID_Lang:
            notepad.setLangType( LANGTYPE.TXT, bufferID )    # RESET
            notepad.setLangType( langType, bufferID )        # Re-Imposta
于 2013-05-17T15:45:27.503 回答
0

<!-- %> -->是一种解决方法,但在这里是你最好的朋友。由于某种原因,我花了一段时间才偶然发现它。

<%include file="foo.html" args="bar='baz'" />

打破它下面的格式。但

<%include file="foo.html" args="bar='baz'" /> <!-- %> -->

使格式正确。SciLexer 认为不匹配的 <% 是一个永无止境的页面指令,但您似乎可以通过在评论中关闭指令来混淆它(!)

我正在使用记事本++ v5.3.1。

于 2014-01-30T01:45:00.040 回答
0

我猜,

<% should have %>

并尝试 NotePad++ 6.2,最新版本 6.3.3 有很多错误

于 2013-06-19T11:04:45.687 回答
0

快速解决:

  1. Ctrl+a
  2. Ctrl+c
  3. Ctrl+v
于 2013-06-03T21:32:13.660 回答
0

正如您所指出的,SciLexer 认为无与伦比<%的评论是永无止境的。SciLexer 有一个解决方法,但 Notepad++ 似乎不允许您为其 SciLexer 设置任意属性。但是我非常坚持使用 Notepad++,这个问题使得 Mako 模板很难编辑,所以我通过<%完全省略它来解决它。

<%然后我将一个函数绑定到在运行时呈现的 TemplateLookup 对象:

template_lookup = TemplateLookup( ... ) # your usual lookup declaration here

# Work around horrible Notepad++ display issue with Mako's <% tags
import types
def generate_mako_tag(lookup, context, tag_body):
  template = Template("<%" + tag_body + "/>")
  template.lookup = lookup
  return template.render_context(context)
template_lookup.tag = types.MethodType(
  generate_mako_tag, template_lookup, TemplateLookup
) # this binds the function to the lookup object

在该 TemplateLookup 提供的模板中,而不是

<%include file="component.html") />

我写的

<% context.lookup.tag(context, "include file='component.html'") %>

它看起来仍然像 ASP 注释,但它已关闭,因此问题消失了。

它不适用于某些声明性 Mako 标签(例如<%page)。

嵌套的引号有时会很烦人。特别是在早期版本的 Notepad++ 上,单引号有问题,但是有一个补丁可以解决这个问题

于 2013-11-21T23:03:11.697 回答
-1

我有个类似的问题。使用比较工具后,语法高亮消失。任何文件扩展名都会发生这种情况。我主要使用批处理脚本。

我确实有一个解决方案可以重新添加颜色:您可以右键单击并转到“插件命令”,然后转到“使用语法突出显示复制文本”。这(至少对我而言)为整个文件重新进行了所有着色。

但是每次打开文件或比较文件或执行导致颜色丢失的操作后都必须这样做是很烦人的。

于 2013-02-22T00:41:25.993 回答