繁体   English   中英

Notepad++ 中的 SourceCookifier 并不总是检测 Javascript 函数

[英]SourceCookifier in Notepad++ not always detecting Javascript functions

如果我在 Notepad++ 中打开文件 Fred.js 并激活 SourceCookifier,它应该显示脚本中所有函数的列表。

但是它报告功能 F_1 但不报告功能 F_2

function F_1()
{
        var ann             = 1234      //<--- OK without ;
        var bob             = 1234 ;    //<----- ; must be present, so F_1 is reported.
        console.log ("Hello world")     //<--- OK without ;
}
function F_2()
{
        var ann             = 1234      //<--- OK without ;
        var bob             = 1234      //<----- ; should be present, so F_2 is not reported.
        console.log ("Hello world")     //<--- OK without ;
}

唯一的区别是在 F_2 中终止了“;” 字符不存在。

我想这是一个错误,但也许我做错了什么?

系统:Windows 7,32 位,Notepad++ v.7.7(2019),SourceCookifier v0.7.3.0。


更新(20201129)我注意到两年前(2018 年)在 SourceForge 上报告了同样的问题:- by Tarek Faham

(1) 等待解决方案(例如对 SourceCookifier 代码的可能错误修复)我发现,如果您将 .js 文件保存为文件类型: .html并在 Notepad++ 中对其进行编辑,则问题不存在。

遗憾的是,在“html”模式下不会报告其他一些 javascript 元素类型。

当然,您必须记住使用 filetype: .js重新保存它,如果您进行了任何编辑,则覆盖旧的 .js 版本。

(2) 使用免费的在线验证工具,如validatejavascript.com 但是,您需要应用适当的规则集。 使用“标准”规则集,我得到了很多(对我来说:微不足道的)错误(比如“开括号后的空格”)。 在 2300 行代码中。 使用“自定义”规则集(未选中框),它发现零错误。 所以你必须知道要注意什么样的错误!


更新 20201202

如果以下代码导致问题; 字符不存在:-

if      ( cVal == "£") {cVal = "$"  ; }  
else if ( cVal == "@") {cVal = "\\" ; } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM