xuzhouchuanxp
发表于 2021-10-11 12:11:21
顶。。。。。。。。。。。。。。。。。。。
newton99
发表于 2021-10-6 10:47:03
学习 学习 谢谢分享
水泊蓝山
发表于 2021-10-1 20:50:14
又花了20金币,打开链接一看,原来我百度网盘上已经有了:face (3):
令狐大虾
发表于 2021-7-25 15:24:22
好多年没更新了啊
geshenggang4
发表于 2021-4-7 11:00:22
好东西!!!!
思夜月心
发表于 2021-3-31 14:38:25
重新回来使用AU3
geshenggang4
发表于 2021-3-28 16:47:28
感谢!!!!
131738
发表于 2021-3-19 11:14:01
afan 发表于 2021-3-19 11:06
是指新建的最佳方案吗?那应该是了~
如果是回车停止响应的问题,那还得修改lua文件,因为虽然新建文件没 ...
我的 AutoIt v3.3.14.5 + 4.1.0 这样设置后没有修改任何 lua 文件,
测试也没有回车挂起. "新建"空脚本能被 SciTE 正确识别.
关于 " 但用户一定有以前创建的ANSI格式文件,或者习惯是ANSI文件格式,如果对其编辑依旧会有崩溃隐患 "
可以加以提示,由用户自由选择.
afan
发表于 2021-3-19 11:06:43
131738 发表于 2021-3-19 10:10
刚测试, 我看这是最佳解决方案了.难怪 JSO 问我在 SciTE 中使用的标准文件编码是什么格式, 我一头雾水,...
是指新建的最佳方案吗?那应该是了~
如果是回车停止响应的问题,那还得修改lua文件,因为虽然新建文件没问题,但用户一定有以前创建的ANSI格式文件,或者习惯是ANSI文件格式,如果对其编辑依旧会有崩溃隐患。
131738
发表于 2021-3-19 10:10:39
本帖最后由 131738 于 2021-3-19 10:25 编辑
afan 发表于 2021-3-17 17:27
改变菜单或按钮新建编码,在 SciTEGlobal.properties 属性文件里修改就行了,如新建改为 UTF-8 (BOM)
Ne ...
刚测试, 我看这是最佳解决方案了.难怪 JSO 问我在 SciTE 中使用的标准文件编码是什么格式, 我一头雾水, 不明不白, 也没有回答这个问题,现在看来就是这个了.
HiroC
发表于 2021-3-18 10:05:23
好东西感谢分享
gyp2000
发表于 2021-3-17 20:27:28
131738 发表于 2021-3-17 11:44
OK.
官方已昨以发布正式 4.4.6 版 SciTE4AutoIt3.exe,
你能否做一个 4.4.6 版 & 3.3.14.5 的中文安装 ...
居然出正式版了。刚刚去下载了
Jos 立即发布了Common.lua的修复版本并打包安装文件
Common.lua 修复的部分:
function Common:FirstWord(line)
以下是添加的修复代码:
if editor:LineLength(line) == 0 then
return ""
end
这段代码并不能解决问题。
犯的错误和我开始一样,感觉新行肯定是0字节长度。但是实际情况是 最后一行可以是任意字节长度。
因为用户很可能在行首或者中间敲回车。
查看 FirstWord 函数中的内容发现:
function Common:FirstWord(line)
local word_pos = editor.LineIndentPosition + 1
;返回行缩进末尾的位置+1
local word_start = editor:WordStartPosition(word_pos)
;向前搜索单词边界的位置,这行代码执行结果永远都是 word_pos -1。
;所以不需要使用editor:WordStartPosition查询位置。直接赋值新的位置就好了。
local word_end = editor:WordEndPosition(word_pos)
;向后搜索单词边界的位置
local word_found = editor:textrange(word_start, word_end)
;提取字符串
word_found = word_found:gsub("^%s*", "") -- remove leading white space
word_found = word_found:gsub("[\r\n]", "") -- remove newlines
return string.lower(word_found)
end -- WordAtStart()
afan
发表于 2021-3-17 17:27:14
131738 发表于 2021-3-17 12:19
这个关联到 SciTE 源码(这就是询问你是否会 VS c++ 的原因).
而这个源码不是 AutoIt3 团队编写的,解决这 ...
改变菜单或按钮新建编码,在 SciTEGlobal.properties 属性文件里修改就行了,如新建改为 UTF-8 (BOM)
NewFileEncoding=UTF8BOM
afan
发表于 2021-3-17 14:33:53
本帖最后由 afan 于 2021-3-17 14:37 编辑
关于 " 因此就简单添加了 if line + 3 >= editor.LineCount then 的修复方式 ",
这个JSO 认为会停用某些功能,但没有详细描述停用那些功能.
就是我说的,仅最末两行不处理而已…
" 当然也可以直接修改 FirstWord 之类的函数(我已完成) " 未见发布啊.
很简单,先还原所有文件(AutoItIndentFix.lua 和 Common.lua) 到原始状态。再修改 Common.lua 中的以下位置中的一个字符即可,1 改为 0:
function Common:FirstWord(line)
local word_pos = editor.LineIndentPosition + 0
当然去掉 + 1 也是一样的。
gyp2000
发表于 2021-3-17 13:07:35
131738 发表于 2021-3-17 12:29
关于"发现是 FirstWord 函数中的 WordStartPosition 造成的 (定义在 Common.lua)",
JSO 也给了解决 ...
我测试了下。Common.lua中
function Common:FirstWord(line)
local word_pos = editor.LineIndentPosition + 1
--local word_start = editor:WordStartPosition(word_pos) 修改这句
local word_start = word_pos -1
local word_end = editor:WordEndPosition(word_pos)
local word_found = editor:textrange(word_start, word_end)
word_found = word_found:gsub("^%s*", "") -- remove leading white space
word_found = word_found:gsub("[\r\n]", "") -- remove newlines
return string.lower(word_found)
end -- WordAtStart()
修改后不会出现无响应的问题。
页:
1
2
[3]
4
5
6
7
8
9
10
11
12