Page 1 of 2

выделить все вхождения слова под курсором

Posted: Wed 21 Jan, 2009 11:59
by jed
Хочу, нажав например CtrlF3, выделить все вхождения слова под курсором, в редакторе, на текущем экране.
Как вариант еще и сразу перескочить при этом к следующему вхождению.
Есть такое в каком-либо плагине? Чего-то не нашел.

Re: выделить все вхождения слова под курсором

Posted: Wed 21 Jan, 2009 12:14
by dolzenko
Ну это просто, пишем макрос который делает временную "вырожденную" схему для колорера, включающую в себя только выделение слова под курсором, затем применяем эту схему к текущему файлу.

PS. а если серъезно - то не знаю :?

Re: выделить все вхождения слова под курсором

Posted: Wed 21 Jan, 2009 12:22
by NightRoman
Про выделение всех слов - не знаю. Переход на следующее вхождение у меня реализован макросом CtrlF3 (именно) с плагином S&R:
F11 s 1 Enter

Здесь "s" - это хоткей S&R в меню плагинов. Еще надо донастроить сам плагин, смотри его настройки - чтобы текущее слово попадало сразу в поле ввода диалога поиска. Еще там есть вариант выделять само это текущее слово или нет (я использую "выделять", так в Вижуал Студии, но это дело вкуса).

Re: выделить все вхождения слова под курсором

Posted: Wed 21 Jan, 2009 12:42
by HaRT
NightRoman wrote:надо донастроить сам плагин, смотри его настройки - чтобы текущее слово попадало сразу
Ну или можно воспользоваться в его же меню пунктами 5/6 — они как раз для этого вне зависимости от настроек. Но тогда слово не попадёт в историю того, что искали.

Однако, если я правильно понял, весь пафос вопроса в том, чтобы подсвечивать все вхождения слова под курсором. Если бы нашёлся программист-энтузиаст, можно было бы попытаться добавить такую функциональность в Visualizer

Re: выделить все вхождения слова под курсором

Posted: Wed 21 Jan, 2009 14:39
by zg
плагин «крест»:

Code: Select all

8. Hilights words on screen the same as under cursor

Re: выделить все вхождения слова под курсором

Posted: Wed 21 Jan, 2009 15:11
by HaRT
Вот спасибо!

Re: выделить все вхождения слова под курсором

Posted: Fri 23 Jan, 2009 07:26
by jed
Спасибо. "Крест" как раз то что нужно.

выделить все вхождения слова под курсором

Posted: Thu 17 Dec, 2015 10:09
by faruh
что посоветуете для Фар 3 по сабжу (плагин, макрос, etc.)
может кто поделиться используемым решением

как последняя альтернатива
dolzenko wrote: пишем макрос который делает временную "вырожденную" схему для колорера
п.с. прошу сильно не бить ногами, так как длительное время не следил за изменениями в комьюнити

выделить все вхождения слова под курсором

Posted: Thu 17 Dec, 2015 12:02
by cmd.exe
Crest Или CrestII
Под x86 работают, и использовал когда-то. Есть исходники, могу собрать для вас под x64.

выделить все вхождения слова под курсором

Posted: Thu 17 Dec, 2015 12:25
by faruh
поставил
cmd.exe wrote: CrestII
"крест" рисует, но не могу найти ничего похожего на
8. Hilights words on screen the same as under cursor
не подскажите как включить?

выделить все вхождения слова под курсором

Posted: Thu 17 Dec, 2015 12:34
by faruh
zg wrote: Hilights words on screen the same as under cursor
нашел "hilight all same words on screen" в файле !!todo к Crest. как понимаю фича не реализована

выделить все вхождения слова под курсором

Posted: Thu 17 Dec, 2015 12:40
by zg
faruh wrote:нашел "hilight all same words on screen" в файле !!todo к Crest
как понимаю фича не реализована
реализована и она даже работает в последнем фаре.

выделить все вхождения слова под курсором

Posted: Thu 17 Dec, 2015 12:52
by faruh
zg wrote: даже работает
работает. спасибо

выделить все вхождения слова под курсором

Posted: Thu 17 Dec, 2015 13:04
by faruh
еще можно использовать EdtFind
http://forum.farmanager.com/viewtopic.php?t=7587

выделить все вхождения слова под курсором

Posted: Thu 17 Dec, 2015 13:51
by zg
простейший макрос пишется от силы за пол часа:

Code: Select all

F=far.Flags
color=
  Flags:bit64.bor F.FCF_FG_4BIT,F.FCF_BG_4BIT
  ForegroundColor:0x1
  BackgroundColor:0xf
colorguid=win.Uuid "507CFA2A-3BA3-4f2b-8A80-318F5A831235"
word=false
Macro
  area:"Editor"
  key:"F5"
  description:"Color Word Under Cursor"
  action:->
    if word then word=false
    else
      ei=editor.GetInfo!
      pos,row=ei.CurPos,ei.CurLine
      line=editor.GetString!.StringText
      if pos<=line\len()+1
        slab=pos>1 and line\sub(1,pos-1)\match('[%w_]+$') or ""
        tail=line\sub(pos)\match('^[%w_]+') or ""
        word=slab..tail
      if word\len()<=0 then word=false
Event
  group:"EditorEvent"
  action:(id,event,param)->
    if event==F.EE_REDRAW
      if word
        ei=editor.GetInfo!
        start,finish=ei.TopScreenLine,math.min ei.TopScreenLine+ei.WindowSizeY,ei.TotalLines
        for ii=start,finish
          line,pos=editor.GetString(-1,ii).StringText,1
          while true
            jj,kk,curr=line\cfind("([%w_]+)",pos)
            if not jj then break
            if curr==word then editor.AddColor ei.EditorID,ii,jj,kk,F.ECF_AUTODELETE,color,100,colorguid
            pos=kk+1