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

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
HaRT
Moderator
Posts: 10859
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

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

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

Версия 0.2:
1. [+] Если “парный” файл не удалось найти “рядом”, он ищется на активной и пассивной панели (особенно удобно для немодального редактирования в панели плагина WinSCP).
2. [+] Учитывается диалог "already loaded" плагина WinSCP.
Editor_AltO.0.2.7z
Открыть “парный” файл в редакторе — исходный код макроса
(1.36 KiB) Downloaded 291 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 »

сжимать черт знает каким архиватором в паблик зачем? есть же зип.
User avatar
HaRT
Moderator
Posts: 10859
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Andrey Budko wrote:сжимать черт знает каким архиватором в паблик зачем?
“Здесь так принято” :P
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10859
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Опубликована версия 0.2.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10859
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

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

Про “гибче”
Я посмотрел код и заметил следующие отличия:
Editor_AltO (а) умеет переключаться между гораздо большим числом пар расширений, (б) умеет находить пару на пассивной панели, (в) “дружит” с плагином WinSCP.
Nav.lua (а) умеет искать файлы по списку путей, зависящему от типа файла, (б) умеет использованием переменные окружения в списке путей для поиска пары.
В целом я согласен с тем, что реализовать даже и такую функциональность встроенным макросом будет чересчур трудоёмко. Но лично мне текущих возможностей пока что хватает.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

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

Post by Maximus5 »

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: 10859
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Чем этот вариант лучше предлагаемого в первом сообщении темы?
Фар есть инструмент, а не нянька. © 2009 DrKnS
Игорь Юдинцев
Posts: 726
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 2 times

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

Post by Игорь Юдинцев »

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: 10859
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

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

Code: Select all

[HKEY_CURRENT_USER\Software\Far2\KeyMacros\Editor\AltO]
При открытом файле *.h макрос открывает файл *.c, наоборот — нет
Пользуйтесь моим вариантом — там и это учтено, и ещё кое-что.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

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

Post by Maximus5 »

HaRT wrote:Чем этот вариант лучше предлагаемого в первом сообщении темы?
не нашел
User avatar
HaRT
Moderator
Posts: 10859
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

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 “Обсуждение макросов”