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

Здесь можно обсудить ваш любимый плагин.
User avatar
ctapmex
Posts: 1226
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 47 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: 10423
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 188 times
Been thanked: 322 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: 3867
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 196 times
Been thanked: 556 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. Details:   symlink_status: �������� ����� �������.: "T:\Far Manager\Plugins\FarColorer\base\catalog.xml"
    3. errno:     0x00000000 - No error
    4. LastError: 0x00000057 - Параметр задан неверно.
    5. NTSTATUS:  0xC000000D - Службе или функции передан неверный параметр.
    6. Address:   00034F69 - KERNELBASE.dll!<unknown> (get the pdb)
    7. Function:  ProcessEditorEventW
    8. Source:    
    9. File:      T:\Far Manager\Plugins\FarColorer\bin\colorer.dll
    10. Plugin:    FarColorer 1.4.0.15 (Syntax highlighting in Far editor, Igor Ruskih, Dobrunov Aleksey, Eugene Efremov)
    11. Far:       3.0.5954.0 x64 (c477288)
    12. OS:        10.0.19044.2.0.0.256.1 (version 21H2, OS build 19044.1466)
    13. Kernel:    10.0.19041.1466 (WinBuild.160101.0800)
    14.  
    15. RAX = 0000000000000003
    16. RBX = 00007FF8FFE2BA80
    17. RCX = 0000023F72000001
    18. RDX = 00007FF95FE63B4C
    19. RSI = 00000046344FDA90
    20. RDI = 0000000019930520
    21. R8  = 0000000002000001
    22. R9  = 0000000000000000
    23. R10 = 00007FF95FE637F0
    24. R11 = 0000000000000000
    25. R12 = 00007FF8FFD16820
    26. R13 = 0000023F71D2D890
    27. R14 = 0000000000000033
    28. R15 = 0000000000000000
    29. RIP = 00007FF95D6F4F69
    30. RSP = 00000046344FD8F0
    31. RBP = 00000046344FDB99
    32. EFL = 00000206
    33.  
    34. 00034F69 KERNELBASE.dll!<unknown> (get the pdb)
    35. 001D7D5C colorer.dll!_CxxThrowException (d:\a01\_work\6\s\src\vctools\crt\vcruntime\src\eh\throw.cpp(75))
    36. 000398E5 colorer.dll!std::filesystem::_Throw_fs_error
    37. 00048976 colorer.dll!Environment::normalizeFsPath
    38. 000489C0 colorer.dll!Environment::normalizePath
    39. 0003A7AB colorer.dll!ParserFactory::Impl::loadCatalog
    40. 00017F0E colorer.dll!FarEditorSet::ReloadBase (D:\a\FarColorer\FarColorer\src\FarEditorSet.cpp(753))
    41. 00012D08 colorer.dll!FarEditorSet::FarEditorSet (D:\a\FarColorer\FarColorer\src\FarEditorSet.cpp(27))
    42. 000252FD colorer.dll!ProcessEditorEventW (D:\a\FarColorer\FarColorer\src\pcolorer.cpp(127))
    43. 0031AD2D Far.exe!001D+_Closure_wrapper_3f0ea662_14::<lambda_invoker_cdecl>(void * __ptr64) (plclass.obj)
    44. 0031AA19 Far.exe!0019+_Closure_wrapper_3f0ea662_2::<lambda_invoker_cdecl>(void * __ptr64) (plclass.obj)
    45. 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)
    46. 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)
    47. 0031AB9E Far.exe!007E+_Closure_wrapper_3f0ea662_4::<lambda_invoker_cdecl>(void * __ptr64) (plclass.obj)
    48. 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)
    49. 00319721 Far.exe!00D1+Plugin::ExecuteFunctionImpl(enum export_index,class function_ref<void __cdecl(void)>) __ptr64 (plclass.obj)
    50. 003185BC Far.exe!009C+Plugin::ProcessEditorEvent(struct ProcessEditorEventInfo * __ptr64) __ptr64 (plclass.obj)
    51. 0034E80D Far.exe!01BD+PluginManager::ProcessEditorEvent(int,void * __ptr64,class Editor const * __ptr64)const __ptr64 (plugins.obj)
    52. 001A39BB Far.exe!032B+Editor::ShowEditor(void) __ptr64 (editor.obj)
    53. 001E092C Far.exe!002C+FileEditor::DisplayObject(void) __ptr64 (fileedit.obj)
    54. 003717D3 Far.exe!00E3+ScreenObject::Show(void) __ptr64 (scrobj.obj)
    55. 002D9290 Far.exe!0160+Manager::RefreshAllCommit(void) __ptr64 (manager.obj)
    56. 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)
    57. 002D84E8 Far.exe!0098+Manager::InsertCommit(class std::shared_ptr<class window> const & __ptr64) __ptr64 (manager.obj)
    58. 002D8401 Far.exe!00E1+Manager::Commit(void) __ptr64 (manager.obj)
    59. 002D725E Far.exe!00BE+Manager::EnterMainLoop(void) __ptr64 (manager.obj)
    60. 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)
    61. 002D4219 Far.exe!00D9+_Closure_wrapper_09d3841d_4::<lambda_invoker_cdecl>(void * __ptr64) (main.obj)
    62. 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)
    63. 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)
    64. 002D301A Far.exe!142A+mainImpl(class span<wchar_t const * __ptr64 const>) (main.obj)
    65. 002D3808 Far.exe!0038+`wmain_seh(void)'::`2'::<lambda_1>::operator()(void)const __ptr64 (main.obj)
    66. 002D42A2 Far.exe!0012+_Closure_wrapper_09d3841d_9::<lambda_invoker_cdecl>(void * __ptr64) (main.obj)
    67. 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)
    68. 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)
    69. 002D3752 Far.exe!0132+wmain_seh(void) (main.obj)
    70. 002D42DE Far.exe!000E+_Closure_wrapper_09d3841d_11::<lambda_invoker_cdecl>(void * __ptr64) (main.obj)
    71. 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)
    72. 002D3A3E Far.exe!00BE+main (main.obj)
    73. 003D3050 Far.exe!010C+__scrt_common_main_seh(void) (LIBCMT:exe_main.obj)
    74. 00017034 KERNEL32.DLL!<unknown> (get the pdb)
    75. 00052651 ntdll.dll!<unknown> (get the pdb)
    76. ----------------------------------------
    77. Current stack:
    78. ----------------------------------------
    79. 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)
    80. 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)
    81. 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)
    82. 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)
    83. 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)
    84. 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)
    85. 0031A9B1 Far.exe!0041+_Closure_wrapper_3f0ea662_1::<lambda_invoker_cdecl>(void * __ptr64,class std::exception const & __ptr64) (plclass.obj)
    86. 0042CAFB Far.exe!000E+__catch$?cpp_try@detail@@YAXV?$function_ref@$$A6AXXZ@@0V?$function_ref@$$A6AXAEBVexception@std@@@Z@@@Z$0 (exception_handler.obj)
    87. 003E47D0 Far.exe!0020+_CallSettingFrame_LookupContinuationIndex (libvcruntime:handlers.obj)
    88. 003DBA45 Far.exe!0115+__FrameHandler4::CxxCallCatchBlock(struct _EXCEPTION_RECORD * __ptr64) (libvcruntime:frame.obj)
    89. 000A1456 ntdll.dll!<unknown> (get the pdb)
    90. 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)
    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. 0031AB9E Far.exe!007E+_Closure_wrapper_3f0ea662_4::<lambda_invoker_cdecl>(void * __ptr64) (plclass.obj)
    93. 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)
    94. 00319721 Far.exe!00D1+Plugin::ExecuteFunctionImpl(enum export_index,class function_ref<void __cdecl(void)>) __ptr64 (plclass.obj)
    95. 003185BC Far.exe!009C+Plugin::ProcessEditorEvent(struct ProcessEditorEventInfo * __ptr64) __ptr64 (plclass.obj)
    96. 0034E80D Far.exe!01BD+PluginManager::ProcessEditorEvent(int,void * __ptr64,class Editor const * __ptr64)const __ptr64 (plugins.obj)
    97. 001A39BB Far.exe!032B+Editor::ShowEditor(void) __ptr64 (editor.obj)
    98. 001E092C Far.exe!002C+FileEditor::DisplayObject(void) __ptr64 (fileedit.obj)
    99. 003717D3 Far.exe!00E3+ScreenObject::Show(void) __ptr64 (scrobj.obj)
    100. 002D9290 Far.exe!0160+Manager::RefreshAllCommit(void) __ptr64 (manager.obj)
    101. 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)
    102. 002D84E8 Far.exe!0098+Manager::InsertCommit(class std::shared_ptr<class window> const & __ptr64) __ptr64 (manager.obj)
    103. 002D8401 Far.exe!00E1+Manager::Commit(void) __ptr64 (manager.obj)
    104. 002D725E Far.exe!00BE+Manager::EnterMainLoop(void) __ptr64 (manager.obj)
    105. 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)
    106. 002D4219 Far.exe!00D9+_Closure_wrapper_09d3841d_4::<lambda_invoker_cdecl>(void * __ptr64) (main.obj)
    107. 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)
    108. 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)
    109. 002D301A Far.exe!142A+mainImpl(class span<wchar_t const * __ptr64 const>) (main.obj)
    110. 002D3808 Far.exe!0038+`wmain_seh(void)'::`2'::<lambda_1>::operator()(void)const __ptr64 (main.obj)
    111. 002D42A2 Far.exe!0012+_Closure_wrapper_09d3841d_9::<lambda_invoker_cdecl>(void * __ptr64) (main.obj)
    112. 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)
    113. 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)
    114. 002D3752 Far.exe!0132+wmain_seh(void) (main.obj)
    115. 002D42DE Far.exe!000E+_Closure_wrapper_09d3841d_11::<lambda_invoker_cdecl>(void * __ptr64) (main.obj)
    116. 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)
    117. 002D3A3E Far.exe!00BE+main (main.obj)
    118. 003D3050 Far.exe!010C+__scrt_common_main_seh(void) (LIBCMT:exe_main.obj)
    119. 00017034 KERNEL32.DLL!<unknown> (get the pdb)
    120. 00052651 ntdll.dll!<unknown> (get the pdb)
    121.  
    122. T:\Far Manager\Far.exe 3.0.5954.0 x64
    123. C:\WINDOWS\SYSTEM32\ntdll.dll 10.0.19041.1466 (WinBuild.160101.0800)
    124. C:\WINDOWS\System32\KERNEL32.DLL 10.0.19041.1466 (WinBuild.160101.0800)
    125. C:\WINDOWS\System32\KERNELBASE.dll 10.0.19041.1466 (WinBuild.160101.0800)
    126. C:\WINDOWS\System32\ADVAPI32.dll 10.0.19041.1466 (WinBuild.160101.0800)
    127. C:\WINDOWS\System32\msvcrt.dll 7.0.19041.546 (WinBuild.160101.0800)
    128. C:\WINDOWS\System32\sechost.dll 10.0.19041.320 (WinBuild.160101.0800)
    129. C:\WINDOWS\System32\RPCRT4.dll 10.0.19041.1466 (WinBuild.160101.0800)
    130. C:\WINDOWS\System32\USER32.dll 10.0.19041.1466 (WinBuild.160101.0800)
    131. C:\WINDOWS\System32\win32u.dll 10.0.19041.1466 (WinBuild.160101.0800)
    132. C:\WINDOWS\System32\GDI32.dll 10.0.19041.1202 (WinBuild.160101.0800)
    133. C:\WINDOWS\System32\gdi32full.dll 10.0.19041.1466 (WinBuild.160101.0800)
    134. C:\WINDOWS\System32\msvcp_win.dll 10.0.19041.789 (WinBuild.160101.0800)
    135. C:\WINDOWS\System32\ucrtbase.dll 10.0.19041.789 (WinBuild.160101.0800)
    136. C:\WINDOWS\System32\SHELL32.dll 10.0.19041.1466 (WinBuild.160101.0800)
    137. C:\WINDOWS\System32\ole32.dll 10.0.19041.1466 (WinBuild.160101.0800)
    138. C:\WINDOWS\System32\combase.dll 10.0.19041.1466 (WinBuild.160101.0800)
    139. C:\WINDOWS\SYSTEM32\NETAPI32.dll 10.0.19041.1466 (WinBuild.160101.0800)
    140. C:\WINDOWS\SYSTEM32\WINSPOOL.DRV 10.0.19041.1466 (WinBuild.160101.0800)
    141. C:\WINDOWS\SYSTEM32\MPR.dll 10.0.19041.1466 (WinBuild.160101.0800)
    142. C:\WINDOWS\System32\PSAPI.DLL 10.0.19041.546 (WinBuild.160101.0800)
    143. C:\WINDOWS\System32\SETUPAPI.dll 10.0.19041.1466 (WinBuild.160101.0800)
    144. C:\WINDOWS\SYSTEM32\Secur32.dll 10.0.19041.546 (WinBuild.160101.0800)
    145. C:\WINDOWS\System32\cfgmgr32.dll 10.0.19041.1151 (WinBuild.160101.0800)
    146. C:\WINDOWS\System32\bcrypt.dll 10.0.19041.1466 (WinBuild.160101.0800)
    147. C:\WINDOWS\System32\COMDLG32.dll 10.0.19041.1466 (WinBuild.160101.0800)
    148. C:\WINDOWS\System32\shcore.dll 10.0.19041.1466 (WinBuild.160101.0800)
    149. C:\WINDOWS\System32\SHLWAPI.dll 10.0.19041.1466 (WinBuild.160101.0800)
    150. C:\WINDOWS\SYSTEM32\VERSION.dll 10.0.19041.546 (WinBuild.160101.0800)
    151. C:\WINDOWS\SYSTEM32\USERENV.dll 10.0.19041.1466 (WinBuild.160101.0800)
    152. C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\COMCTL32.dll 6.10 (WinBuild.160101.0800)
    153. C:\WINDOWS\SYSTEM32\SRVCLI.DLL 10.0.19041.1466 (WinBuild.160101.0800)
    154. C:\WINDOWS\SYSTEM32\SAMCLI.DLL 10.0.19041.1466 (WinBuild.160101.0800)
    155. C:\WINDOWS\SYSTEM32\NETUTILS.DLL 10.0.19041.546 (WinBuild.160101.0800)
    156. C:\WINDOWS\SYSTEM32\SSPICLI.DLL 10.0.19041.1266 (WinBuild.160101.0800)
    157. C:\WINDOWS\System32\IMM32.DLL 10.0.19041.546 (WinBuild.160101.0800)
    158. C:\WINDOWS\SYSTEM32\kernel.appcore.dll 10.0.19041.546 (WinBuild.160101.0800)
    159. C:\WINDOWS\system32\uxtheme.dll 10.0.19041.1466 (WinBuild.160101.0800)
    160. C:\Program Files (x86)\Yandex\Punto Switcher\PSHook64.dll 4, 4, 4, 489
    161. C:\Tools\Anvir\AnvirHook8_64.dll 8.0.0.0
    162. C:\WINDOWS\SYSTEM32\MSIMG32.dll 10.0.19041.1466 (WinBuild.160101.0800)
    163. C:\WINDOWS\System32\MSCTF.dll 10.0.19041.1466 (WinBuild.160101.0800)
    164. C:\WINDOWS\System32\OLEAUT32.dll 10.0.19041.985 (WinBuild.160101.0800)
    165. C:\WINDOWS\SYSTEM32\powrprof.dll 10.0.19041.1466 (WinBuild.160101.0800)
    166. C:\WINDOWS\SYSTEM32\UMPDC.dll Unknown
    167. C:\Program Files\Far Manager\Plugins\Drag_n_Drop\hook_x86_64.dll 3.0.84.4700
    168. C:\WINDOWS\System32\bcryptPrimitives.dll 10.0.19041.1415 (WinBuild.160101.0800)
    169. C:\WINDOWS\System32\clbcatq.dll 2001.12.10941.16384 (WinBuild.160101.0800)
    170. C:\WINDOWS\system32\explorerframe.dll 10.0.19041.1466 (WinBuild.160101.0800)
    171. C:\Windows\System32\OneCoreUAPCommonProxyStub.dll 10.0.19041.1387 (WinBuild.160101.0800)
    172. T:\Far Manager\Plugins\LuaMacro\LuaMacro.dll 3.0.768.0
    173. T:\Far Manager\lua51.dll Unknown
    174. T:\Far Manager\luafar3.dll 3.0.768.0
    175. C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL 10.0.19041.546 (WinBuild.160101.0800)
    176. T:\Far Manager\lpeg.dll Unknown
    177. T:\Far Manager\Plugins\FarColorer\bin\colorer.dll 1.4.15
    178. C:\WINDOWS\SYSTEM32\dbghelp.DLL 10.0.19041.867 (WinBuild.160101.0800)
    179. C:\WINDOWS\SYSTEM32\dbgcore.DLL 10.0.19041.789 (WinBuild.160101.0800)
    Упомянутый в репорте xml - такой:
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <!DOCTYPE catalog [
    3.    <!ENTITY hrd "jar:common.zip!hrd">
    4.     <!ENTITY catalog-console SYSTEM "jar:common.zip!hrd/catalog-console.xml">
    5.     <!ENTITY catalog-rgb SYSTEM "jar:common.zip!hrd/catalog-rgb.xml">
    6.     <!ENTITY catalog-text SYSTEM "jar:common.zip!hrd/catalog-text.xml">
    7. ]>
    8. <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">
    9.     <hrc-sets>
    10.         <location link="jar:common.zip!hrc/proto.hrc" />
    11.         <location link="auto" />
    12.     </hrc-sets>
    13.     <hrd-sets>
    14.         &catalog-console;
    15.         &catalog-rgb;
    16.         &catalog-text;
    17.     </hrd-sets>
    18. </catalog>
User avatar
buniak_a_h
Posts: 3867
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 196 times
Been thanked: 556 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: 6107
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 419 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: 3867
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 196 times
Been thanked: 556 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: 1226
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 47 times

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

Post by ctapmex »

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

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

Post by DrKnS »

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

Кстати, исключения в плагине лучше таки обрабатывать самостоятельно (try & catch в каждом экспорте).
Нет никаких гарантий, что фар сможет их поймать и хоть что-то сделать.
User avatar
Taciturn
Posts: 552
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 74 times
Been thanked: 23 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: 1226
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 47 times

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

Post by ctapmex »

Taciturn, кажется, что правильный способ.
в предыдущих версиях была ошибка с выставлением веса по умолчанию , если он не задан явно.
должно быть (сейчас так) - filename =2 , firstline =1 .
а было наоборот.
siberia-man
Posts: 126
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: 45
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: 10423
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 188 times
Been thanked: 322 times

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

Post by HaRT »

Locust wrote: Mon 25 Apr, 2022 15:15 какая-то проблема с парсингом catalog.xml, но это не точно
Относительно недавно поменялось расположение файлов схем — почитайте тут выше по теме. Ну и вообще, когда обновляетесь, а оно не работает, следует изучить, какие между версиями заявлены изменения.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Locust
Posts: 45
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: 1862
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 24 times

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

Post by Wave »

WinPE на базе XP? Ну так Colorer дропнул поддержку XP начиная с 1.4. Последнюю 1.3.х версию надо искать на гитхабе колорера.
Пользуюсь ФАРом больше 20 лет © собирательный.
Locust
Posts: 45
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: 10423
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 188 times
Been thanked: 322 times

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

Post by HaRT »

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

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