Открыть “парный” файл в редакторе (например, H—CPP)

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
HaRT
Moderator
Posts: 9170
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 177 times

Открыть “парный” файл в редакторе (например, H—CPP)

Post by HaRT » Fri 27 Jun, 2008 12:43

Прилагаю мой макрос для решения этой типовой задачи без помощи плагинов.

Особенности:
1. Полная настраиваемость, от каких расширений к каким переходить.
2. Использование в коде комментариев в стиле SelMacro.
3. Использование в коде констант из MacroConsts.reg.

Версия 0.2:
1. [+] Если “парный” файл не удалось найти “рядом”, он ищется на активной и пассивной панели (особенно удобно для немодального редактирования в панели плагина WinSCP).
2. [+] Учитывается диалог "already loaded" плагина WinSCP.
Editor_AltO.0.2.7z
Открыть “парный” файл в редакторе — исходный код макроса
(1.36 KiB) Downloaded 259 times
“Трансляцию” предлагаю осуществлять посредством FMM 0.4.

2010-02-19
Опубликована Версия 0.3.
Last edited by HaRT on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Анонсирована версия 0.3
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Andrey Budko
Posts: 1203
Joined: Fri 01 Apr, 2005 14:03
Contact:

Re: Открыть “парный” файл в редакторе (например, H—CPP)

Post by Andrey Budko » Fri 27 Jun, 2008 13:19

сжимать черт знает каким архиватором в паблик зачем? есть же зип.

User avatar
HaRT
Moderator
Posts: 9170
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 177 times

Re: Открыть “парный” файл в редакторе (например, H—CPP)

Post by HaRT » Fri 27 Jun, 2008 14:17

Andrey Budko wrote:сжимать черт знает каким архиватором в паблик зачем?
“Здесь так принято” :P
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
HaRT
Moderator
Posts: 9170
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 177 times

Re: Открыть “парный” файл в редакторе (например, H—CPP)

Post by HaRT » Mon 21 Jul, 2008 14:55

Опубликована версия 0.2.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
HaRT
Moderator
Posts: 9170
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 177 times

Re: Открыть “парный” файл в редакторе (например, H—CPP)

Post by HaRT » Sat 29 Nov, 2008 16:27

maxdrfl wrote:неужели он быстрее и гибче чем макрос на lua?
Про “быстрее”
Если речь идёт о скорости работы, то не знаю, не сравнивал. Но есть сильное подозрение, что единственное, на чём возможно торможение, — это на проверке наличия многих файлов подряд, а это уже будет, скорее всего, определяться скоростью работы файловой системы, а не макро-движка. Если же речь о скорости разработки/доработки, то для тех, кто знает Lua и уже использует соответствующий плагин, вероятно, оно и будет быстрее. Для прочих же “родной” Фаровский макрос, наверно, подойдёт больше.

Про “гибче”
Я посмотрел код и заметил следующие отличия:
Editor_AltO (а) умеет переключаться между гораздо большим числом пар расширений, (б) умеет находить пару на пассивной панели, (в) “дружит” с плагином WinSCP.
Nav.lua (а) умеет искать файлы по списку путей, зависящему от типа файла, (б) умеет использованием переменные окружения в списке путей для поиска пары.
В целом я согласен с тем, что реализовать даже и такую функциональность встроенным макросом будет чересчур трудоёмко. Но лично мне текущих возможностей пока что хватает.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Макрос для переключения между *.c[pp] и *.h[pp]

Post by Maximus5 » Fri 19 Feb, 2010 09:19

Code: Select all

[HKEY_CURRENT_USER\Software\Far2\KeyMacros\Editor\AltO]
"Sequence"="%cur=Editor.FileName; %dpf=fsplit(%cur,7); %ext=ucase(fsplit(%cur,8)); $If (%ext==\".CPP\" || %ext==\".C\" || %ext==\".H\" || %ext==\".HPP\")   $If (%ext==\".CPP\")     %new=%dpf+\".h\";     $If (fexist(%new)==0)       %new=%dpf+\".hpp\";     $End   $Else     %new=%dpf+\".cpp\";     $If (fexist(%new)==0)       %new=%dpf+\".c\";     $End   $End   $If (fexist(%new)==1)     ShiftF4 $Text %new Enter  $If (Dialog && Dlg.ItemCount == 6 && Title == \"Editor\" && Dlg.CurPos == 4 && Dlg.ItemType == 7) Enter $End $End $End"
"DisableOutput"=dword:00000001
"Description"="Switch between *.c[pp] and *.h[pp]"

User avatar
HaRT
Moderator
Posts: 9170
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 177 times

Re: Макрос для переключения между *.c[pp] и *.h[pp]

Post by HaRT » Fri 19 Feb, 2010 11:57

Чем этот вариант лучше предлагаемого в первом сообщении темы?
Фар есть инструмент, а не нянька. © 2009 DrKnS

Игорь Юдинцев
Posts: 725
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 1 time

Re: Макрос для переключения между *.c[pp] и *.h[pp]

Post by Игорь Юдинцев » Fri 19 Feb, 2010 16:34

Maximus5 wrote:

Code: Select all

[HKEY_CURRENT_USER\Software\Far2\KeyMacros\Editor\AltO]
При открытом файле *.h макрос открывает файл *.c, наоборот — нет:

Code: Select all

╔══════════════ Редактор ══════════════╗
║            xxxxxxxxx.c               ║
║ уже загружен. Как открыть этот файл? ║
║  Текущий  Новая копия  Перегрузить   ║
╚══════════════════════════════════════╝

User avatar
HaRT
Moderator
Posts: 9170
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 177 times

Re: Макрос для переключения между *.c[pp] и *.h[pp]

Post by HaRT » Fri 19 Feb, 2010 17:33

Игорь Юдинцев wrote:
Maximus5 wrote:

Code: Select all

[HKEY_CURRENT_USER\Software\Far2\KeyMacros\Editor\AltO]
При открытом файле *.h макрос открывает файл *.c, наоборот — нет
Пользуйтесь моим вариантом — там и это учтено, и ещё кое-что.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: Макрос для переключения между *.c[pp] и *.h[pp]

Post by Maximus5 » Fri 19 Feb, 2010 21:17

HaRT wrote:Чем этот вариант лучше предлагаемого в первом сообщении темы?
не нашел

User avatar
HaRT
Moderator
Posts: 9170
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 177 times

Re: Открыть “парный” файл в редакторе (например, H—CPP)

Post by HaRT » Fri 19 Feb, 2010 21:30

Code: Select all

;;   2008-08-02:      : fixed typos in documentation
;;   2008-08-05:      : adapted for WinSCP's another "already loaded" prompt
;;   2008-08-26: v.0.3: added PRI<->PRO
Фар есть инструмент, а не нянька. © 2009 DrKnS

Post Reply

Return to “Обсуждение макросов”