我在TextMate 2中花费了大量时间来编写PHP,而花费较少的时间来编写Javascript。

我总是发现Textmate中的Validate Syntax命令对于保存之前的最终快速健全性检查非常有用。 我今天想知道是否有办法对Javascript做类似的事情,我想我已经在橡子中找到了解决方案:

https://github.com/ternjs/acorn

按照以下方式运行:

acorn --silent <file-here>; echo $?

如果有效,则返回0,否则无效,则返回1。 如果不是,它还会在发生语法错误的行中返回错误:

Unexpected token (50:1)
1

似乎在简单的“验证语法”命令中使用它几乎是完美的。

但这就是我遇到无知的砖墙的地方。 我不确定如何从那里转到TextMate中的实际命令并查看PHP示例,还有一些其他问题使我无所适从,部分原因是我几乎没有Ruby的经验,而且看来这就是通常的命令用TextMate编写。

任何有更多编写TextMate命令经验的人都喜欢通过吗?


根据Graham的建议和其他帮助,这是一个有效的命令:

#!/usr/bin/env bash
#Write scope of JS to a temp file
echo "$(</dev/stdin)" > ${TMPDIR}acorn-validation.js;
#Capture output of acorn syntax check (Note that acorn sends the output to STDERR thus the 2>&1)
ACORN_OUTPUT=$( (acorn --silent ${TMPDIR}acorn-validation.js) 2>&1 );

echo 'Running syntax check with acorn...';

if [[ "" == $ACORN_OUTPUT ]]; then
    echo 'No syntax errors detected';
fi

if [[ "" != $ACORN_OUTPUT ]]; then
    #Find the line/column value
    LINE=$(echo $ACORN_OUTPUT | grep -oE '([0-9]+:[0-9]+)';);
    echo '';
    echo 'Syntax error on '${LINE};
    echo ${ACORN_OUTPUT/($LINE)/};
    #Send cursor to the place where the error occured
    LINE=(${LINE//:/ });
    open "txmt://open/?url=file://${TM_FILEPATH}&line=${LINE[0]}&column=${LINE[1]}";
fi

确保在工具提示中将“输入”设置为“范围”,将“输出”设置为“显示”。

#1楼 票数:4 已采纳

全局安装Acorn:

npm install -g acorn

找出acorn安装位置:

which acorn

我的说(因为我使用nvm):

~/.nvm/versions/node/v6.2.2/bin/acorn

将该bin文件夹添加到您的TextMate路径,使用冒号来描绘:

TextMate的设置-带有PATH的变量标签

所以我的路径是:

$PATH:/opt/local/bin:/usr/local/bin:/usr/texbin:/usr/local/bin:$HOME/.nvm/versions/node/v6.2.2/bin:$HOME/.rvm/rubies/ruby-2.3.3/bin

现在打开包编辑器:

创建捆绑软件,或打开现有的捆绑软件,然后按cmd + n创建新文件,然后从下拉列表中选择“命令”。

将此粘贴到命令cmd + s中进行保存。

更新:(OP)Jamie Poitra已将该命令从概念验证引入到功能,因此请检查其脚本问题。

#!/usr/bin/env bash
acorn ${TM_FILE}

可以了,好了。

  ask by Jamie Poitra translate from so

未解决问题?本站智能推荐:

1回复

配置TextMate编辑器以获取OpenCV库的语法颜色

我是OS X的新手,并使用TextMate作为编辑器。 在TextMate中,我使用的是Mac Classic主题,它为std C ++提供了语法着色。 问题:如何配置Textmate以便它可以为OpenCV数据类型提供语法着色,如'Mat'等。 PS:我只想使用Textmate作
1回复

使Sublime Text更像TextMate

好吧,我在Mac OS X下,我使用TextMate 1.5.11编译LaTeX文档。 但是我发现Sublime Text 2比TextMate(还有beta版本的TM v2)具有更多我喜欢的功能。 TextMate 2具有其中一些功能,但仍然存在问题。 因此,我想转到ST2,但是只有
1回复

Textmate 2-删除宏

我找不到删除刚刚使用最新Textmate版本创建的自定义宏的方法。 当然这应该是相当简单的任务吗? 编辑捆绑包部分中的唯一选项是启用/禁用宏。
1回复

Textmate上的列缩进指南

我想知道Textmate中是否有捆绑软件或偏好设置,以便获得Sublime的白色虚线列定界符。 看截图。 在Textmate中查看此PHP函数 (来源: darwinsantos.com ) 现在在Sublime中查看它。 (来源: darwinsantos.c
1回复

如何删除 Textmate中的角色

从PDF文档复制和粘贴后,有一个<NUL>字符流。 如何快速删除Textmate文档中的<NUL>字符?
1回复

如何将Textmate升级到版本2

我有Textmate(我认为是1.5),以为我会看一下新版本2。我找不到任何有关如何升级/获取新版本的说明! 我敢肯定它一定很明显,但是我看不出来。 除非我必须从GitHub上的源代码编译?
5回复

Textmate2保存丢失焦点

在TextMate v1中,有一个选项可以保存丢失的焦点。 也就是说,当您切换到另一个应用程序时,您的TextMate文档将保存。 如何在TextMate 2中重新创建此行为?
2回复

使用TextMate打开Grails项目

我创建了一个简单的grails应用程序。 当我ls文件夹时,我得到的是: 现在,我想在TextMate中打开此项目,以便我可以对其进行编辑。 当我输入mate . 它说-bash: mate: command not found 。 我正在使用的TextMate versio