突出显示Sublime Text 3中重复项的快捷方式

时间:2014-08-13 07:07:30

标签: tabs sublimetext3

因此,sublime文本的highlighduplicate插件似乎不适合我,所以我想创建自己的。我需要这个来识别副本,所以它比Sublime的'Permute:Unique'更进一步

我创建了一个正则表达式:^(.*)(\r?\n\1)+$,它会发现重复并且它似乎运行良好。

现在,我需要的是快速键盘快捷键来触发它。我尝试录制一个宏(使用cmd + i),但多次尝试后似乎都没有。

我知道sublime包是用python编写的,但我并不精通Python。

我该如何编写这个插件/包?

谢谢,

2 个答案:

答案 0 :(得分:0)

突出显示重复项?我的插件适合你吗?或许我在这里误解了#_#

如果它不是非常适合你,你可以查看代码,这很容易〜

CursorWordHighlighter

答案 1 :(得分:-1)

我为你修好了包裹,得到了here并安装了这个新版本 如果您有任何问题,请告诉我,但显然它可以在我的笔记本电脑上运行。

为了更加冗长,文件存在两个问题。首先,ST API的更改使得对add_regions()的调用失败,并且关于defaultDict实现的python API也发生了变化。
你可以看看我在github上做的修改,或者这是一个快速的差异:

diff --git a/hightlight_duplicates.py b/highlight_duplicates.py
similarity index 91%
rename from hightlight_duplicates.py
rename to highlight_duplicates.py
index 8351275..c2e6137 100644
--- a/hightlight_duplicates.py
+++ b/highlight_duplicates.py
@@ -42,7 +42,9 @@ def filter_counts(counts, treshold=1):
     lower or equal to the treshold, which defaults to 1.
     '''
     filtered = dict()
-    for k, v in counts.iteritems():
+    # for k, v in counts.iteritems():
+    for k in counts:
+        v = counts[k]
         if len(v) > treshold:
             filtered[k] = v
     return filtered
@@ -60,11 +62,13 @@ def show_lines(regions, view):
     all_regions = []
     for r in regions:
         all_regions.extend(r)
-    color_scope_name = settings.get('highlight_duplicates_color',
+    color_scope_name = settings.get('highlight_duplicates_color', \
                                         DEFAULT_COLOR_SCOPE_NAME)
-    view.add_regions('DuplicatesHighlightListener',
-                        all_regions, color_scope_name,
-                        sublime.DRAW_OUTLINED)
+    view.add_regions('DuplicatesHighlightListener', \
+                        all_regions, \
+                        color_scope_name, \
+                        "Packages/Theme - Default/dot.png", \
+                        sublime.DRAW_NO_FILL)


 def highlight_duplicates(view):