发表回复 
我也整合sciteautohotkey并请教下一步改进
2015-01-23, 15 : 14 (这个帖子最后修改于: 2015-01-23 15 : 39 by joshatt.)
我也整合sciteautohotkey并请教下一步改进
什么都不懂啊. 瞎试. 都是别人的东西, 没有我自己的哈.
下载: http://pan.baidu.com/s/1kTBplCN

是在官方的 SciTE4AutoHotkey Version 3.0.06.01 - Based on SciTE 3.5.1
Built on Oct 12 2014 13:40:05
的基础上, 增加了两个功能 (详见readme)
1, 自动完成功能, 原本只能关键词自动完成吧, 现在扩展成可以变量也自动完成, 比如此脚本中已出现varsome1 变量, 则键入va会弹出自动完成选择的.
2, 自动高亮所有.....

3, 自动括号补全....这个我失败了, 就是在UserLuaScript.lua的末尾添加
local toClose = { ['('] = ')', ['{'] = '}', ['['] = ']', ['"'] = '"', ["'"] = "'" , ["%"] = "%" }
function OnChar(charAdded)
if toClose[charAdded] ~= nil and editor.CharAt[editor.CurrentPos-1]>0 then
editor:InsertText(editor.CurrentPos,toClose[charAdded])
end
end
结果这个功能是有了, 但功能1失效了(功能1是靠UserLuaScript.lua实现的)
求解决方法.

希望的其他改进, 麻烦给点意见:
象ultraedit那样的"自动括号配对", 就是在已经写完的代码中单击一个括号, 自动把它对应的另一半高亮.....也许已经实现了? 麻烦告诉我怎么弄?

另一个需要的功能:
看有网友写的一个工具 http://ahk8.com/thread-5534.html
这个是用的折叠. 但我更想要缩进的. 即自动按嵌套层次进行不同程度的缩进(是针对已经写完的代码哦. 不是书写过程中的缩进).
这个就更高级了哈. 请高人出手
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2015-01-23, 21 : 11
RE: 我也整合sciteautohotkey并请教下一步改进
一直希望能实现第一个功能,但试用了一下,还是有些不足,就是必须要保存以后的变量才能提示自动完成,没有保存前是不提示的。
而且杀毒软件总是提示记录键盘操作,不爽
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2015-01-24, 06 : 53 (这个帖子最后修改于: 2015-01-24 06 : 54 by joshatt.)
RE: 我也整合sciteautohotkey并请教下一步改进
(2015-01-23 21 : 11)td3zz 提到:  一直希望能实现第一个功能,但试用了一下,还是有些不足,就是必须要保存以后的变量才能提示自动完成,没有保存前是不提示的。
确实如此啊, 存盘后才行.
我有一个老版本scite, 不支持AHK语言,但它的autocomplete.lua是可以任意语言都自动完成变量的,不需要存盘, 我试了ahk也行的. 代码如下:
代码: (全选)
-- Dynamically generate autocomplete lists from possible identifiers in any file.

local IGNORE_CASE = true
-- Number of chars to type before the autocomplete list appears:
local MIN_PREFIX_LEN = 3
-- Length of shortest word to add to the autocomplete list
local MIN_IDENTIFIER_LEN = 5
-- A list of string patterns for finding suggestions for the autocomplete menu.
local IDENTIFIER_PATTERNS = {"[%a_$][%w_]+", "[%a_$][%w_.]*[%w_]", "[%a_$][%w_-]*[%w_]"}


local list_names = {}
local notempty = next


if IGNORE_CASE then
    normalize = string.lower
else
    normalize = function(word) return word end
end


function buildNames()
    list_names = {}
    local text = editor:GetText()
    for i, pattern in ipairs(IDENTIFIER_PATTERNS) do
        for word in string.gmatch(text, pattern) do
            if string.len(word) >= MIN_IDENTIFIER_LEN then
                list_names[word] = true
            end
        end
    end
end


function handleChar()
    if not editor:AutoCActive() then
        editor.AutoCIgnoreCase = IGNORE_CASE            
        local pos = editor.CurrentPos
        local startPos = editor:WordStartPosition(pos, true)
        local len = pos - startPos
        if len >= MIN_PREFIX_LEN then
            local prefix = editor:textrange(startPos, pos)
            local menuItems = {}
            for name, v in pairs(list_names) do
                if normalize(string.sub(name, 1, len)) == normalize(prefix) then
                    table.insert(menuItems, name)
                end
            end
            if notempty(menuItems) then
                table.sort(menuItems)
                editor:AutoCShow(len, table.concat(menuItems, " "))
            end
        end
    end
end

-- Event handlers
--OnChar       = handleChar
--OnSave       = buildNames
--OnSwitchFile = buildNames
--OnOpen       = buildNames
可惜我不知道如何把ahk语言加入进去,好像极度复杂.

我这个新版本, 试了把上述autocomplete.lua改名为UserLuaScript.lua, 结果完全不起作用了.

高手指点啊
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2015-01-24, 11 : 12 (这个帖子最后修改于: 2015-01-24 11 : 20 by 兔子.)
RE: 我也整合sciteautohotkey并请教下一步改进
第一个功能非常有意思,要是能不保存也支持,中文变量名也支持就更完美了。

我曾经试图加入这个功能,但是lua不太懂,纯用ahk又没想好实现方式。

现在想来,去那些专门发lua的地方,说不定已经有人实现了呢?
-------------------------------------------------------------
自动括号补全在我整合的版本中也实现了,不过实际用下来很不好用,所以被屏蔽了。
另外自动高亮对应括号也是scite自己本身就实现了的,你试试我那个版本,应该很明显就能看见效果。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2015-01-26, 09 : 48
RE: 我也整合sciteautohotkey并请教下一步改进
(2015-01-24 11 : 12)兔子 提到:  第一个功能非常有意思,要是能不保存也支持,中文变量名也支持就更完美了。

我曾经试图加入这个功能,但是lua不太懂,纯用ahk又没想好实现方式。

现在想来,去那些专门发lua的地方,说不定已经有人实现了呢?
弄了几天, 筋疲力竭, 奈何没有编程基础, 都是瞎弄.
去请教了第一个功能的原作者, 目前可以简单修改, 实现切换tab(就是在编辑器内不同的文档之间切换)会自动记住新变量. 我还不满意. 不知道怎么弄呢.

另一个实现方法当然就是在已完美实现第一个功能的老scite版本中添加ahk语言. 我简单粗暴地把ahk可能相关的几个文件加进去, 简单改了两行. 目前可以自动完成新变量, 可以关键词提示参数. 但, 语法高亮完全不对. 有没有高手明白这些, 帮我改改:
http://pan.baidu.com/s/1i3IeVZn
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2015-01-28, 21 : 58
RE: 我也整合sciteautohotkey并请教下一步改进
支持你继续完善第一个功能,这个非常实用,我在notepad2 mod里面也常常使用
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2015-01-30, 07 : 41
RE: 我也整合sciteautohotkey并请教下一步改进
(2015-01-28 21 : 58)td3zz 提到:  支持你继续完善第一个功能,这个非常实用,我在notepad2 mod里面也常常使用
难啊. 基础差. 我最后发的这个,你先凑合用用. 就缺语法颜色高亮
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合