Colorer — гибкая раскраска синтаксиса в редакторе и др.

Здесь можно обсудить ваш любимый плагин.
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by ctapmex »

Far Colorer — плагин подсветки синтаксиса в редакторе, основанный на Colorer Library Игоря Русских.
  • Изначальный автор плагина — Игорь Русских (lomecb, он же cail).
  • После того как плагин портирован на Far 2, поддержкой занимается Алексей Добрунов (ctapmex, он же на форуме ctapmex).
  • Официальная поддержка осуществляется через google-группу colorer_ru (на форуме бывает только ctapmex).
  • Актуальные версии основаны на Colorer Library версии take5.
GitHub | Анонс | Старые домашние страницы библиотеки Colorer и плагина для FAR

Плагин входит в дистрибутив Far Manager с v3.0.2948 (старые версии доступны тут)
Поддержка Windows XP
Начиная с версии FarColorer 1.4.0 в плагине прекращена поддержка Windows XP. Полностью поддерживается и тестируется на Windows 10. Несколько версий Windows назад - по запросу. Но кажется, что всегда должно работать начиная с Windows 2008.
Far Manager 3.0.5797 (2021.05.10) и более новые в дистрибутиве содержат FarColorer версии 1.4.
Поддержка Windows XP осталась только на FarColorer 1.3.x. В данной ветке будут выходить только критичные исправления. Скачать можно на GitHub странице плагина. Последняя версия 1.3.30



Что не разжёвано в документации плагина:
  • Как подключить собственные цветовые стили *.hrd
  • Как подключить собственную схему:
    • используя пользовательский файл прототипов:
    • используя папку auto:
    • через пользовательский catalog.xml:
  • Как переопределить существующую схему
  • Как правильно "удалить" какую-либо стандартную схему
  • Как использовать относительные пути и переменные окружения
  • Если раскраска неправильна:
  • Неочевидные настройки: maxlinelength (в теме)
  • Тонкая настройка подсветки для отдельной схемы: в теме.
Last edited by ctapmex on Mon 18 Oct, 2021 19:17, edited 5 times in total.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by HaRT »

Latest post of the previous page:

buniak_a_h wrote: Sun 16 Jan, 2022 04:18 то ли Вы дополнили своё сообщение
Да, дополнил.
buniak_a_h wrote: Sun 16 Jan, 2022 04:18 какие "искаробочные" pdb брать
Нужно брать те, которые относятся ровно к вашей сборке Фара (тот же номер сборки, та же целевая архитектура).
buniak_a_h wrote: Sun 16 Jan, 2022 04:02 Где должен образоваться стэк вызовов?
В окошке указана папка, и она же при этом открывается в Проводнике. В ней три файла: один текстовый, один мини-дамп, и один полный дамп. Выложить прямо тут желательно текстовый.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by buniak_a_h »

HaRT wrote: Sun 16 Jan, 2022 04:44 Нужно брать те, которые относятся ровно к вашей сборке Фара (тот же номер сборки, та же целевая архитектура).
Это я знаю. Не знаю, как определить номер сборки. ФАР пишет, что он -3.0.5954 x64. Таких га сайте 4 архива (и 4 соответствующих pdb-архива). И ни в одном из них far.exe не совпадает с моим. Более того! Мой ехе-шник датирован 12.01.22, а если предположить, что в имени архива 3-я часть - это дата, то они начинаются с 13.01.2022.
HaRT wrote: Sun 16 Jan, 2022 04:44 Выложить прямо тут желательно текстовый.
  1. Секретных данных у меня теперь нет (я на пенсии). В указанной папке имеется …\Profile\CrashLogs, в котором есть все 3 файла. Но если сюда удобнее, то пожалуйста
    1. Exception: 0xE06D7363 - C++ exception (class std::filesystem::filesystem_error)
    2.  
    3. Details:   symlink_status: �������� ����� �������.: "T:\Far Manager\Plugins\FarColorer\base\catalog.xml"
    4.  
    5. errno:     0x00000000 - No error
    6.  
    7. LastError: 0x00000057 - Параметр задан неверно.
    8.  
    9. NTSTATUS:  0xC000000D - Службе или функции передан неверный параметр.
    10.  
    11. Address:   00034F69 - KERNELBASE.dll!<unknown> (get the pdb)
    12.  
    13. Function:  ProcessEditorEventW
    14.  
    15. Source:    
    16.  
    17. File:      T:\Far Manager\Plugins\FarColorer\bin\colorer.dll
    18.  
    19. Plugin:    FarColorer 1.4.0.15 (Syntax highlighting in Far editor, Igor Ruskih, Dobrunov Aleksey, Eugene Efremov)
    20.  
    21. Far:       3.0.5954.0 x64 (c477288)
    22.  
    23. OS:        10.0.19044.2.0.0.256.1 (version 21H2, OS build 19044.1466)
    24.  
    25. Kernel:    10.0.19041.1466 (WinBuild.160101.0800)
    26.  
    27.  
    28.  
    29. RAX = 0000000000000003
    30.  
    31. RBX = 00007FF8FFE2BA80
    32.  
    33. RCX = 0000023F72000001
    34.  
    35. RDX = 00007FF95FE63B4C
    36.  
    37. RSI = 00000046344FDA90
    38.  
    39. RDI = 0000000019930520
    40.  
    41. R8  = 0000000002000001
    42.  
    43. R9  = 0000000000000000
    44.  
    45. R10 = 00007FF95FE637F0
    46.  
    47. R11 = 0000000000000000
    48.  
    49. R12 = 00007FF8FFD16820
    50.  
    51. R13 = 0000023F71D2D890
    52.  
    53. R14 = 0000000000000033
    54.  
    55. R15 = 0000000000000000
    56.  
    57. RIP = 00007FF95D6F4F69
    58.  
    59. RSP = 00000046344FD8F0
    60.  
    61. RBP = 00000046344FDB99
    62.  
    63. EFL = 00000206
    64.  
    65.  
    66.  
    67. 00034F69 KERNELBASE.dll!<unknown> (get the pdb)
    68.  
    69. 001D7D5C colorer.dll!_CxxThrowException (d:\a01\_work\6\s\src\vctools\crt\vcruntime\src\eh\throw.cpp(75))
    70.  
    71. 000398E5 colorer.dll!std::filesystem::_Throw_fs_error
    72.  
    73. 00048976 colorer.dll!Environment::normalizeFsPath
    74.  
    75. 000489C0 colorer.dll!Environment::normalizePath
    76.  
    77. 0003A7AB colorer.dll!ParserFactory::Impl::loadCatalog
    78.  
    79. 00017F0E colorer.dll!FarEditorSet::ReloadBase (D:\a\FarColorer\FarColorer\src\FarEditorSet.cpp(753))
    80.  
    81. 00012D08 colorer.dll!FarEditorSet::FarEditorSet (D:\a\FarColorer\FarColorer\src\FarEditorSet.cpp(27))
    82.  
    83. 000252FD colorer.dll!ProcessEditorEventW (D:\a\FarColorer\FarColorer\src\pcolorer.cpp(127))
    84.  
    85. 0031AD2D Far.exe!001D+_Closure_wrapper_3f0ea662_14::<lambda_invoker_cdecl>(void * __ptr64) (plclass.obj)
    86.  
    87. 0031AA19 Far.exe!0019+_Closure_wrapper_3f0ea662_2::<lambda_invoker_cdecl>(void * __ptr64) (plclass.obj)
    88.  
    89. 001CD761 Far.exe!0031+detail::cpp_try(class function_ref<void __cdecl(void)>,class function_ref<void __cdecl(void)>,class function_ref<void __cdecl(class std::exception const & __ptr64)>) (exception_handler.obj)
    90.  
    91. 00319791 Far.exe!0061+cpp_try<class ``Plugin::ExecuteFunctionImpl(enum export_index,class function_ref<void __cdecl(void)>) __ptr64'::`2'::<lambda_2>::operator()(void)const __ptr64'::`2'::<lambda_3>,class ``Plugin::ExecuteFunctionImpl(enum export_index,class function_ref<void __cdecl(void)>) __ptr64'::`2'::<lambda_2>::operator()(void)const __ptr64'::`2'::<lambda_4>,class ``Plugin::ExecuteFunctionImpl(enum export_index,class function_ref<void __cdecl(void)>) __ptr64'::`2'::<lambda_2>::operator()(void)const __ptr64'::`2'::<lambda_5> >(class ``Plugin::ExecuteFunctionImpl(enum export_index,class function_ref<void __cdecl(void)>) __ptr64'::`2'::<lambda_2>::operator()(void)const __ptr64'::`2'::<lambda_3> const & __ptr64,class ``Plugin::ExecuteFunctionImpl(enum export_index,class function_ref<void __cdecl(void)>) __ptr64'::`2'::<lambda_2>::operator()(void)const __ptr64'::`2'::<lambda_4> const & __ptr64,class ``Plugin::ExecuteFunctionImpl(enum export_index,class function_ref<void __cdecl(void)>) __ptr64'::`2'::<lambda_2>::operator()(void)const __ptr64'::`2'::<lambda_5> const & __ptr64) (plclass.obj)
    92.  
    93. 0031AB9E Far.exe!007E+_Closure_wrapper_3f0ea662_4::<lambda_invoker_cdecl>(void * __ptr64) (plclass.obj)
    94.  
    95. 001CD79D Far.exe!001D+detail::seh_try(class function_ref<void __cdecl(void)>,class function_ref<unsigned long __cdecl(struct _EXCEPTION_POINTERS * __ptr64)>,class function_ref<void __cdecl(unsigned long)>) (exception_handler.obj)
    96.  
    97. 00319721 Far.exe!00D1+Plugin::ExecuteFunctionImpl(enum export_index,class function_ref<void __cdecl(void)>) __ptr64 (plclass.obj)
    98.  
    99. 003185BC Far.exe!009C+Plugin::ProcessEditorEvent(struct ProcessEditorEventInfo * __ptr64) __ptr64 (plclass.obj)
    100.  
    101. 0034E80D Far.exe!01BD+PluginManager::ProcessEditorEvent(int,void * __ptr64,class Editor const * __ptr64)const __ptr64 (plugins.obj)
    102.  
    103. 001A39BB Far.exe!032B+Editor::ShowEditor(void) __ptr64 (editor.obj)
    104.  
    105. 001E092C Far.exe!002C+FileEditor::DisplayObject(void) __ptr64 (fileedit.obj)
    106.  
    107. 003717D3 Far.exe!00E3+ScreenObject::Show(void) __ptr64 (scrobj.obj)
    108.  
    109. 002D9290 Far.exe!0160+Manager::RefreshAllCommit(void) __ptr64 (manager.obj)
    110.  
    111. 002D8C86 Far.exe!0146+Manager::DoActivation(class std::shared_ptr<class window> const & __ptr64,class std::shared_ptr<class window> const & __ptr64) __ptr64 (manager.obj)
    112.  
    113. 002D84E8 Far.exe!0098+Manager::InsertCommit(class std::shared_ptr<class window> const & __ptr64) __ptr64 (manager.obj)
    114.  
    115. 002D8401 Far.exe!00E1+Manager::Commit(void) __ptr64 (manager.obj)
    116.  
    117. 002D725E Far.exe!00BE+Manager::EnterMainLoop(void) __ptr64 (manager.obj)
    118.  
    119. 002CFA17 Far.exe!10A7+MainProcess(class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,int,int) (main.obj)
    120.  
    121. 002D4219 Far.exe!00D9+_Closure_wrapper_09d3841d_4::<lambda_invoker_cdecl>(void * __ptr64) (main.obj)
    122.  
    123. 001CD761 Far.exe!0031+detail::cpp_try(class function_ref<void __cdecl(void)>,class function_ref<void __cdecl(void)>,class function_ref<void __cdecl(class std::exception const & __ptr64)>) (exception_handler.obj)
    124.  
    125. 002D34E2 Far.exe!0092+cpp_try<class `mainImpl(class span<wchar_t const * __ptr64 const>)'::`2'::<lambda_4>,class `mainImpl(class span<wchar_t const * __ptr64 const>)'::`2'::<lambda_5>,class `mainImpl(class span<wchar_t const * __ptr64 const>)'::`2'::<lambda_6> >(class `mainImpl(class span<wchar_t const * __ptr64 const>)'::`2'::<lambda_4> const & __ptr64,class `mainImpl(class span<wchar_t const * __ptr64 const>)'::`2'::<lambda_5> const & __ptr64,class `mainImpl(class span<wchar_t const * __ptr64 const>)'::`2'::<lambda_6> const & __ptr64) (main.obj)
    126.  
    127. 002D301A Far.exe!142A+mainImpl(class span<wchar_t const * __ptr64 const>) (main.obj)
    128.  
    129. 002D3808 Far.exe!0038+`wmain_seh(void)'::`2'::<lambda_1>::operator()(void)const __ptr64 (main.obj)
    130.  
    131. 002D42A2 Far.exe!0012+_Closure_wrapper_09d3841d_9::<lambda_invoker_cdecl>(void * __ptr64) (main.obj)
    132.  
    133. 001CD761 Far.exe!0031+detail::cpp_try(class function_ref<void __cdecl(void)>,class function_ref<void __cdecl(void)>,class function_ref<void __cdecl(class std::exception const & __ptr64)>) (exception_handler.obj)
    134.  
    135. 002D3932 Far.exe!0092+cpp_try<class `wmain_seh(void)'::`2'::<lambda_1>,class `wmain_seh(void)'::`2'::<lambda_2>,class `wmain_seh(void)'::`2'::<lambda_3> >(class `wmain_seh(void)'::`2'::<lambda_1> const & __ptr64,class `wmain_seh(void)'::`2'::<lambda_2> const & __ptr64,class `wmain_seh(void)'::`2'::<lambda_3> const & __ptr64) (main.obj)
    136.  
    137. 002D3752 Far.exe!0132+wmain_seh(void) (main.obj)
    138.  
    139. 002D42DE Far.exe!000E+_Closure_wrapper_09d3841d_11::<lambda_invoker_cdecl>(void * __ptr64) (main.obj)
    140.  
    141. 001CD79D Far.exe!001D+detail::seh_try(class function_ref<void __cdecl(void)>,class function_ref<unsigned long __cdecl(struct _EXCEPTION_POINTERS * __ptr64)>,class function_ref<void __cdecl(unsigned long)>) (exception_handler.obj)
    142.  
    143. 002D3A3E Far.exe!00BE+main (main.obj)
    144.  
    145. 003D3050 Far.exe!010C+__scrt_common_main_seh(void) (LIBCMT:exe_main.obj)
    146.  
    147. 00017034 KERNEL32.DLL!<unknown> (get the pdb)
    148.  
    149. 00052651 ntdll.dll!<unknown> (get the pdb)
    150.  
    151. ----------------------------------------
    152.  
    153. Current stack:
    154.  
    155. ----------------------------------------
    156.  
    157. 001C6F7A Far.exe!032A+get_backtrace(class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,class span<unsigned __int64 const >,class span<unsigned __int64 const >,class function_ref<void __cdecl(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > && __ptr64)>) (exception_handler.obj)
    158.  
    159. 001C9338 Far.exe!02F8+collect_information(class exception_context const & __ptr64,class span<unsigned __int64 const >,class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,class span<struct std::pair<class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> > > const >) (exception_handler.obj)
    160.  
    161. 001CA88B Far.exe!0DFB+ShowExceptionUI(bool,class exception_context const & __ptr64,class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,struct error_state const & __ptr64,class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const & __ptr64,class Plugin const * __ptr64 const,class span<unsigned __int64 const >) (exception_handler.obj)
    162.  
    163. 001CBCB9 Far.exe!0759+handle_generic_exception(class exception_context const & __ptr64,class std::basic_string_view<char,struct std::char_traits<char> >,class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,class Plugin const * __ptr64 const,class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,struct error_state const & __ptr64,class span<unsigned __int64 const >) (exception_handler.obj)
    164.  
    165. 001CC99F Far.exe!03EF+handle_std_exception(class exception_context const & __ptr64,class std::exception const & __ptr64,class std::basic_string_view<char,struct std::char_traits<char> >,class Plugin const * __ptr64 const) (exception_handler.obj)
    166.  
    167. 001CCA8E Far.exe!00AE+handle_std_exception(class std::exception const & __ptr64,class std::basic_string_view<char,struct std::char_traits<char> >,class Plugin const * __ptr64) (exception_handler.obj)
    168.  
    169. 0031A9B1 Far.exe!0041+_Closure_wrapper_3f0ea662_1::<lambda_invoker_cdecl>(void * __ptr64,class std::exception const & __ptr64) (plclass.obj)
    170.  
    171. 0042CAFB Far.exe!000E+__catch$?cpp_try@detail@@YAXV?$function_ref@$$A6AXXZ@@0V?$function_ref@$$A6AXAEBVexception@std@@@Z@@@Z$0 (exception_handler.obj)
    172.  
    173. 003E47D0 Far.exe!0020+_CallSettingFrame_LookupContinuationIndex (libvcruntime:handlers.obj)
    174.  
    175. 003DBA45 Far.exe!0115+__FrameHandler4::CxxCallCatchBlock(struct _EXCEPTION_RECORD * __ptr64) (libvcruntime:frame.obj)
    176.  
    177. 000A1456 ntdll.dll!<unknown> (get the pdb)
    178.  
    179. 001CD761 Far.exe!0031+detail::cpp_try(class function_ref<void __cdecl(void)>,class function_ref<void __cdecl(void)>,class function_ref<void __cdecl(class std::exception const & __ptr64)>) (exception_handler.obj)
    180.  
    181. 00319791 Far.exe!0061+cpp_try<class ``Plugin::ExecuteFunctionImpl(enum export_index,class function_ref<void __cdecl(void)>) __ptr64'::`2'::<lambda_2>::operator()(void)const __ptr64'::`2'::<lambda_3>,class ``Plugin::ExecuteFunctionImpl(enum export_index,class function_ref<void __cdecl(void)>) __ptr64'::`2'::<lambda_2>::operator()(void)const __ptr64'::`2'::<lambda_4>,class ``Plugin::ExecuteFunctionImpl(enum export_index,class function_ref<void __cdecl(void)>) __ptr64'::`2'::<lambda_2>::operator()(void)const __ptr64'::`2'::<lambda_5> >(class ``Plugin::ExecuteFunctionImpl(enum export_index,class function_ref<void __cdecl(void)>) __ptr64'::`2'::<lambda_2>::operator()(void)const __ptr64'::`2'::<lambda_3> const & __ptr64,class ``Plugin::ExecuteFunctionImpl(enum export_index,class function_ref<void __cdecl(void)>) __ptr64'::`2'::<lambda_2>::operator()(void)const __ptr64'::`2'::<lambda_4> const & __ptr64,class ``Plugin::ExecuteFunctionImpl(enum export_index,class function_ref<void __cdecl(void)>) __ptr64'::`2'::<lambda_2>::operator()(void)const __ptr64'::`2'::<lambda_5> const & __ptr64) (plclass.obj)
    182.  
    183. 0031AB9E Far.exe!007E+_Closure_wrapper_3f0ea662_4::<lambda_invoker_cdecl>(void * __ptr64) (plclass.obj)
    184.  
    185. 001CD79D Far.exe!001D+detail::seh_try(class function_ref<void __cdecl(void)>,class function_ref<unsigned long __cdecl(struct _EXCEPTION_POINTERS * __ptr64)>,class function_ref<void __cdecl(unsigned long)>) (exception_handler.obj)
    186.  
    187. 00319721 Far.exe!00D1+Plugin::ExecuteFunctionImpl(enum export_index,class function_ref<void __cdecl(void)>) __ptr64 (plclass.obj)
    188.  
    189. 003185BC Far.exe!009C+Plugin::ProcessEditorEvent(struct ProcessEditorEventInfo * __ptr64) __ptr64 (plclass.obj)
    190.  
    191. 0034E80D Far.exe!01BD+PluginManager::ProcessEditorEvent(int,void * __ptr64,class Editor const * __ptr64)const __ptr64 (plugins.obj)
    192.  
    193. 001A39BB Far.exe!032B+Editor::ShowEditor(void) __ptr64 (editor.obj)
    194.  
    195. 001E092C Far.exe!002C+FileEditor::DisplayObject(void) __ptr64 (fileedit.obj)
    196.  
    197. 003717D3 Far.exe!00E3+ScreenObject::Show(void) __ptr64 (scrobj.obj)
    198.  
    199. 002D9290 Far.exe!0160+Manager::RefreshAllCommit(void) __ptr64 (manager.obj)
    200.  
    201. 002D8C86 Far.exe!0146+Manager::DoActivation(class std::shared_ptr<class window> const & __ptr64,class std::shared_ptr<class window> const & __ptr64) __ptr64 (manager.obj)
    202.  
    203. 002D84E8 Far.exe!0098+Manager::InsertCommit(class std::shared_ptr<class window> const & __ptr64) __ptr64 (manager.obj)
    204.  
    205. 002D8401 Far.exe!00E1+Manager::Commit(void) __ptr64 (manager.obj)
    206.  
    207. 002D725E Far.exe!00BE+Manager::EnterMainLoop(void) __ptr64 (manager.obj)
    208.  
    209. 002CFA17 Far.exe!10A7+MainProcess(class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,class std::basic_string_view<wchar_t,struct std::char_traits<wchar_t> >,int,int) (main.obj)
    210.  
    211. 002D4219 Far.exe!00D9+_Closure_wrapper_09d3841d_4::<lambda_invoker_cdecl>(void * __ptr64) (main.obj)
    212.  
    213. 001CD761 Far.exe!0031+detail::cpp_try(class function_ref<void __cdecl(void)>,class function_ref<void __cdecl(void)>,class function_ref<void __cdecl(class std::exception const & __ptr64)>) (exception_handler.obj)
    214.  
    215. 002D34E2 Far.exe!0092+cpp_try<class `mainImpl(class span<wchar_t const * __ptr64 const>)'::`2'::<lambda_4>,class `mainImpl(class span<wchar_t const * __ptr64 const>)'::`2'::<lambda_5>,class `mainImpl(class span<wchar_t const * __ptr64 const>)'::`2'::<lambda_6> >(class `mainImpl(class span<wchar_t const * __ptr64 const>)'::`2'::<lambda_4> const & __ptr64,class `mainImpl(class span<wchar_t const * __ptr64 const>)'::`2'::<lambda_5> const & __ptr64,class `mainImpl(class span<wchar_t const * __ptr64 const>)'::`2'::<lambda_6> const & __ptr64) (main.obj)
    216.  
    217. 002D301A Far.exe!142A+mainImpl(class span<wchar_t const * __ptr64 const>) (main.obj)
    218.  
    219. 002D3808 Far.exe!0038+`wmain_seh(void)'::`2'::<lambda_1>::operator()(void)const __ptr64 (main.obj)
    220.  
    221. 002D42A2 Far.exe!0012+_Closure_wrapper_09d3841d_9::<lambda_invoker_cdecl>(void * __ptr64) (main.obj)
    222.  
    223. 001CD761 Far.exe!0031+detail::cpp_try(class function_ref<void __cdecl(void)>,class function_ref<void __cdecl(void)>,class function_ref<void __cdecl(class std::exception const & __ptr64)>) (exception_handler.obj)
    224.  
    225. 002D3932 Far.exe!0092+cpp_try<class `wmain_seh(void)'::`2'::<lambda_1>,class `wmain_seh(void)'::`2'::<lambda_2>,class `wmain_seh(void)'::`2'::<lambda_3> >(class `wmain_seh(void)'::`2'::<lambda_1> const & __ptr64,class `wmain_seh(void)'::`2'::<lambda_2> const & __ptr64,class `wmain_seh(void)'::`2'::<lambda_3> const & __ptr64) (main.obj)
    226.  
    227. 002D3752 Far.exe!0132+wmain_seh(void) (main.obj)
    228.  
    229. 002D42DE Far.exe!000E+_Closure_wrapper_09d3841d_11::<lambda_invoker_cdecl>(void * __ptr64) (main.obj)
    230.  
    231. 001CD79D Far.exe!001D+detail::seh_try(class function_ref<void __cdecl(void)>,class function_ref<unsigned long __cdecl(struct _EXCEPTION_POINTERS * __ptr64)>,class function_ref<void __cdecl(unsigned long)>) (exception_handler.obj)
    232.  
    233. 002D3A3E Far.exe!00BE+main (main.obj)
    234.  
    235. 003D3050 Far.exe!010C+__scrt_common_main_seh(void) (LIBCMT:exe_main.obj)
    236.  
    237. 00017034 KERNEL32.DLL!<unknown> (get the pdb)
    238.  
    239. 00052651 ntdll.dll!<unknown> (get the pdb)
    240.  
    241.  
    242.  
    243. T:\Far Manager\Far.exe 3.0.5954.0 x64
    244.  
    245. C:\WINDOWS\SYSTEM32\ntdll.dll 10.0.19041.1466 (WinBuild.160101.0800)
    246.  
    247. C:\WINDOWS\System32\KERNEL32.DLL 10.0.19041.1466 (WinBuild.160101.0800)
    248.  
    249. C:\WINDOWS\System32\KERNELBASE.dll 10.0.19041.1466 (WinBuild.160101.0800)
    250.  
    251. C:\WINDOWS\System32\ADVAPI32.dll 10.0.19041.1466 (WinBuild.160101.0800)
    252.  
    253. C:\WINDOWS\System32\msvcrt.dll 7.0.19041.546 (WinBuild.160101.0800)
    254.  
    255. C:\WINDOWS\System32\sechost.dll 10.0.19041.320 (WinBuild.160101.0800)
    256.  
    257. C:\WINDOWS\System32\RPCRT4.dll 10.0.19041.1466 (WinBuild.160101.0800)
    258.  
    259. C:\WINDOWS\System32\USER32.dll 10.0.19041.1466 (WinBuild.160101.0800)
    260.  
    261. C:\WINDOWS\System32\win32u.dll 10.0.19041.1466 (WinBuild.160101.0800)
    262.  
    263. C:\WINDOWS\System32\GDI32.dll 10.0.19041.1202 (WinBuild.160101.0800)
    264.  
    265. C:\WINDOWS\System32\gdi32full.dll 10.0.19041.1466 (WinBuild.160101.0800)
    266.  
    267. C:\WINDOWS\System32\msvcp_win.dll 10.0.19041.789 (WinBuild.160101.0800)
    268.  
    269. C:\WINDOWS\System32\ucrtbase.dll 10.0.19041.789 (WinBuild.160101.0800)
    270.  
    271. C:\WINDOWS\System32\SHELL32.dll 10.0.19041.1466 (WinBuild.160101.0800)
    272.  
    273. C:\WINDOWS\System32\ole32.dll 10.0.19041.1466 (WinBuild.160101.0800)
    274.  
    275. C:\WINDOWS\System32\combase.dll 10.0.19041.1466 (WinBuild.160101.0800)
    276.  
    277. C:\WINDOWS\SYSTEM32\NETAPI32.dll 10.0.19041.1466 (WinBuild.160101.0800)
    278.  
    279. C:\WINDOWS\SYSTEM32\WINSPOOL.DRV 10.0.19041.1466 (WinBuild.160101.0800)
    280.  
    281. C:\WINDOWS\SYSTEM32\MPR.dll 10.0.19041.1466 (WinBuild.160101.0800)
    282.  
    283. C:\WINDOWS\System32\PSAPI.DLL 10.0.19041.546 (WinBuild.160101.0800)
    284.  
    285. C:\WINDOWS\System32\SETUPAPI.dll 10.0.19041.1466 (WinBuild.160101.0800)
    286.  
    287. C:\WINDOWS\SYSTEM32\Secur32.dll 10.0.19041.546 (WinBuild.160101.0800)
    288.  
    289. C:\WINDOWS\System32\cfgmgr32.dll 10.0.19041.1151 (WinBuild.160101.0800)
    290.  
    291. C:\WINDOWS\System32\bcrypt.dll 10.0.19041.1466 (WinBuild.160101.0800)
    292.  
    293. C:\WINDOWS\System32\COMDLG32.dll 10.0.19041.1466 (WinBuild.160101.0800)
    294.  
    295. C:\WINDOWS\System32\shcore.dll 10.0.19041.1466 (WinBuild.160101.0800)
    296.  
    297. C:\WINDOWS\System32\SHLWAPI.dll 10.0.19041.1466 (WinBuild.160101.0800)
    298.  
    299. C:\WINDOWS\SYSTEM32\VERSION.dll 10.0.19041.546 (WinBuild.160101.0800)
    300.  
    301. C:\WINDOWS\SYSTEM32\USERENV.dll 10.0.19041.1466 (WinBuild.160101.0800)
    302.  
    303. C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\COMCTL32.dll 6.10 (WinBuild.160101.0800)
    304.  
    305. C:\WINDOWS\SYSTEM32\SRVCLI.DLL 10.0.19041.1466 (WinBuild.160101.0800)
    306.  
    307. C:\WINDOWS\SYSTEM32\SAMCLI.DLL 10.0.19041.1466 (WinBuild.160101.0800)
    308.  
    309. C:\WINDOWS\SYSTEM32\NETUTILS.DLL 10.0.19041.546 (WinBuild.160101.0800)
    310.  
    311. C:\WINDOWS\SYSTEM32\SSPICLI.DLL 10.0.19041.1266 (WinBuild.160101.0800)
    312.  
    313. C:\WINDOWS\System32\IMM32.DLL 10.0.19041.546 (WinBuild.160101.0800)
    314.  
    315. C:\WINDOWS\SYSTEM32\kernel.appcore.dll 10.0.19041.546 (WinBuild.160101.0800)
    316.  
    317. C:\WINDOWS\system32\uxtheme.dll 10.0.19041.1466 (WinBuild.160101.0800)
    318.  
    319. C:\Program Files (x86)\Yandex\Punto Switcher\PSHook64.dll 4, 4, 4, 489
    320.  
    321. C:\Tools\Anvir\AnvirHook8_64.dll 8.0.0.0
    322.  
    323. C:\WINDOWS\SYSTEM32\MSIMG32.dll 10.0.19041.1466 (WinBuild.160101.0800)
    324.  
    325. C:\WINDOWS\System32\MSCTF.dll 10.0.19041.1466 (WinBuild.160101.0800)
    326.  
    327. C:\WINDOWS\System32\OLEAUT32.dll 10.0.19041.985 (WinBuild.160101.0800)
    328.  
    329. C:\WINDOWS\SYSTEM32\powrprof.dll 10.0.19041.1466 (WinBuild.160101.0800)
    330.  
    331. C:\WINDOWS\SYSTEM32\UMPDC.dll Unknown
    332.  
    333. C:\Program Files\Far Manager\Plugins\Drag_n_Drop\hook_x86_64.dll 3.0.84.4700
    334.  
    335. C:\WINDOWS\System32\bcryptPrimitives.dll 10.0.19041.1415 (WinBuild.160101.0800)
    336.  
    337. C:\WINDOWS\System32\clbcatq.dll 2001.12.10941.16384 (WinBuild.160101.0800)
    338.  
    339. C:\WINDOWS\system32\explorerframe.dll 10.0.19041.1466 (WinBuild.160101.0800)
    340.  
    341. C:\Windows\System32\OneCoreUAPCommonProxyStub.dll 10.0.19041.1387 (WinBuild.160101.0800)
    342.  
    343. T:\Far Manager\Plugins\LuaMacro\LuaMacro.dll 3.0.768.0
    344.  
    345. T:\Far Manager\lua51.dll Unknown
    346.  
    347. T:\Far Manager\luafar3.dll 3.0.768.0
    348.  
    349. C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL 10.0.19041.546 (WinBuild.160101.0800)
    350.  
    351. T:\Far Manager\lpeg.dll Unknown
    352.  
    353. T:\Far Manager\Plugins\FarColorer\bin\colorer.dll 1.4.15
    354.  
    355. C:\WINDOWS\SYSTEM32\dbghelp.DLL 10.0.19041.867 (WinBuild.160101.0800)
    356.  
    357. C:\WINDOWS\SYSTEM32\dbgcore.DLL 10.0.19041.789 (WinBuild.160101.0800)
    Упомянутый в репорте xml - такой:
    1. <?xml version="1.0" encoding="UTF-8"?>
    2.  
    3. <!DOCTYPE catalog [
    4.  
    5.    <!ENTITY hrd "jar:common.zip!hrd">
    6.  
    7.     <!ENTITY catalog-console SYSTEM "jar:common.zip!hrd/catalog-console.xml">
    8.  
    9.     <!ENTITY catalog-rgb SYSTEM "jar:common.zip!hrd/catalog-rgb.xml">
    10.  
    11.     <!ENTITY catalog-text SYSTEM "jar:common.zip!hrd/catalog-text.xml">
    12.  
    13. ]>
    14.  
    15. <catalog xmlns="http://colorer.github.io/schema/v1/catalog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://colorer.github.io/schema/v1/catalog https://colorer.github.io/schema/v1/catalog.xsd">
    16.  
    17.     <hrc-sets>
    18.  
    19.         <location link="jar:common.zip!hrc/proto.hrc" />
    20.  
    21.         <location link="auto" />
    22.  
    23.     </hrc-sets>
    24.  
    25.     <hrd-sets>
    26.  
    27.         &catalog-console;
    28.  
    29.         &catalog-rgb;
    30.  
    31.         &catalog-text;
    32.  
    33.     </hrd-sets>
    34.  
    35. </catalog>
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by buniak_a_h »

P/S. Что за файл - я не знаю, он достаточно старый, мог остаться от старых настроек. А главное, чего я не понимаю - почему с HDD работает, а с флэшки - нет.
Last edited by buniak_a_h on Sun 16 Jan, 2022 05:28, edited 1 time in total.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by DrKnS »

buniak_a_h wrote: Sun 16 Jan, 2022 05:28почему с HDD работает, а с флэшки - нет
Потому что:
  • на HDD NTFS
  • на флешке FAT
  • колорер с какого-то рожна пытается выяснить, уж не симлинк ли его base\catalog.xml
  • используя для этого std::filesystem::is_symlink()
  • которая бросает исключение на FAT
  • вероятно в MS ее стажер писал левой пяткой.
В colorer это можно обойти, используя error_code-версию.

Написал им. Там можно голосовать, если у вас есть MS аккаунт.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by buniak_a_h »

DrKnS wrote: Sun 16 Jan, 2022 07:53 В colorer это можно обойти, используя error_code-версию.
  1. Этот "обход" будет в не-error-code версии?
  2. А что такое error_code версия?
  3. MS точно использует труд студентов. Вопрос в том, «какого рожна» colorer пытается сделать то, что ему не надо? Если это исключить, то, возможно, и производительность подрастёт?
На самом деле вопрос, конечно, не аварийный. но как-то неприятно…
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by ctapmex »

в colorer есть возможность использовать catalog.xml как симлинк. Для этого и делается данная проверка. Если симлинк, то пути файлов смотрим относительно файла где лежит исходный файл.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by DrKnS »

ctapmex wrote: Sun 16 Jan, 2022 13:44Если симлинк, то пути файлов смотрим относительно файла где лежит исходный файл.
Это какой-то очень вычурный кост подход.
В общем случае, симлинки должны быть прозрачны для приложений и не обрабатываться особым образом.
Закладывать в них логику - верный способ рано или поздно нажить проблем.
Тем более, что в настройках плагина уже есть возможность переопределить catalog.xml без приседаний с симлинками.

Кстати, исключения в плагине лучше таки обрабатывать самостоятельно (try & catch в каждом экспорте).
Нет никаких гарантий, что фар сможет их поймать и хоть что-то сделать.
User avatar
Taciturn
Posts: 600
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by Taciturn »

Обновился до новой стабильной версии Far, v3.0 build 5959, и сломалась такая схема (только путь чуть отличался, с учётом common.jar и common.zip):

Code: Select all

    <prototype name="text" group="other" description="plain text">
        <location link="jar:%FarHome%\Plugins\FarColorer\base\common.zip!hrc/misc/text.hrc"/>
        <filename weight='1.5'>//</filename>
    </prototype>
Смысл в том, чтобы она была схемой по умолчанию для тех случае, когда никакие другие схемы не определены, т.е. типом по умолчанию вместо «default type». И раньше, например в v3.0 build 5888, всё так и работало. А сейчас такая схема, к примеру, ломает автоматическое определение Default.farconfig как xml и он тоже определяется как plain text. Как починить?

Впрочем, можно сделать так:

Code: Select all

    <prototype name="text" group="other" description="plain text">
        <location link="jar:%FarHome%\Plugins\FarColorer\base\common.zip!hrc/misc/text.hrc"/>
        <filename weight='1'>//</filename>
    </prototype>
    <prototype name="default" group="other" description="default type">
        <filename weight='0.9'>//</filename>
    </prototype>
И всё начинает работать. Но правильный ли это способ?
Last edited by Taciturn on Wed 02 Feb, 2022 05:30, edited 3 times in total.
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by ctapmex »

Taciturn, кажется, что правильный способ.
в предыдущих версиях была ошибка с выставлением веса по умолчанию , если он не задан явно.
должно быть (сейчас так) - filename =2 , firstline =1 .
а было наоборот.
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by siberia-man »

ctapmex,

Пытаясь адаптировать макросы новой версии, увидел дубликаты:

Code: Select all

$ grep Plugin.Call Plugins/FarColorer/bin/Plugin.Colorer.lua | sort | uniq -c | awk '$1 > 1'
      2     Plugin.Call(ColorerGUID, "Brackets", "SelectAll")
      2     Plugin.Call(ColorerGUID, "Functions", "Show")

"Functions", "Show" это альтернатива для команды вывода списка функций (ALT+; или F5).

"Brackets", "SelectAll" это небольшой, но все-таки баг для команд поиска пары "скобок" ALT+[ и выделения текста ограниченного скобками ALT+P или ALT+]. Здесь я не совсем уверен, но мне кажется, что были изменены кнопкосочетания для выделения текста без скобок или со скобками.
Last edited by siberia-man on Tue 08 Feb, 2022 23:11, edited 1 time in total.
Locust
Posts: 50
Joined: Wed 08 Apr, 2009 07:14
Has thanked: 3 times
Been thanked: 2 times

Не работает FarColorer в WinPE

Post by Locust »

Приветствую!

Начиная с версии 1.4.х перестал работать Colorer в среде WinPE. Я пробовал 1.4.0, 1.4.10, 1.4.15
Версия 1.3.30 работает штатно.

Имхо, какая-то проблема с парсингом catalog.xml, но это не точно.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by HaRT »

Locust wrote: Mon 25 Apr, 2022 15:15 какая-то проблема с парсингом catalog.xml, но это не точно
Относительно недавно поменялось расположение файлов схем — почитайте тут выше по теме. Ну и вообще, когда обновляетесь, а оно не работает, следует изучить, какие между версиями заявлены изменения.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Locust
Posts: 50
Joined: Wed 08 Apr, 2009 07:14
Has thanked: 3 times
Been thanked: 2 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by Locust »

HaRT, я довольно давно не проверял работоспособность новых версий Фар под WinPE. Сегодня скачал актуальный билд и узрел, что под WinPE не работает Colorer. Я скачал с гитхаба старую версию Colorer (1.3.30) и заменил - всё работает. Попробовал версии 1.4.10 и 1.4.0 - НЕ работает. При этом под "живой" ОС проблем с Colorer версий 1.4.х нет.
Так понятней?

"Не работает" - это красное окно краша с предложением выгрузить/завершить плагин.
С версией 1.4.0 выкидывало просто окно с ошибкой парсинга catalog.xml и продолжало работать просто без раскраски. Но, возможно, это случайность.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by Wave »

WinPE на базе XP? Ну так Colorer дропнул поддержку XP начиная с 1.4. Последнюю 1.3.х версию надо искать на гитхабе колорера.
Пользуюсь ФАРом больше 20 лет © собирательный.
Locust
Posts: 50
Joined: Wed 08 Apr, 2009 07:14
Has thanked: 3 times
Been thanked: 2 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by Locust »

Wave, разумеется, нет. WinPE на базе Вин10 (любой битности).

Господа, для воспроизведения краша не нужно никаких особых условий: берем boot.wim от любого дистриба 10-ки, загружаем, запускаем Фар и нажимаем Ф4 на, скажем, батнике или xml.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by HaRT »

Locust wrote: Mon 25 Apr, 2022 18:43 "Не работает" - это красное окно краша с предложением выгрузить/завершить плагин.
Там наверняка что-то написано про крэш-лог. Потрудитесь, пожалуйста, его выложить сюда (под спойлер).
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

Return to “Обсуждение плагинов”