Tôi đang viết một plugin để tích hợp Delphi IDE Theme Editor
với Rad Studio IDE (phiên bản hiện tại của công cụ này chạy dưới dạng ứng dụng bên ngoài) cho đến nay mọi thứ đều hoạt động tốt (xem hình bên dưới), ngoại trừ thực tế tôi có thể ' t tìm ra cách làm mới cú pháp màu sắc nổi bật được chọn trong Delphi IDELàm thế nào hướng dẫn làm mới IDE Delphi cú pháp sửa đổi làm nổi bật màu sắc bằng cách sử dụng OTA (API công cụ mở)?
Hãy để tôi giải thích, trong các tùy chọn tiêu chuẩn để thay đổi màu sắc nổi bật cú pháp (Editor Options-> Color), bạn có thể tùy chỉnh bất kỳ yếu tố và gán màu nền trước và nền mới, sau đó nếu bạn nhấn . ĐƯỢC . nút IDE áp dụng các thay đổi và cửa sổ trình soạn thảo IDE được cập nhật với các cài đặt mới.
Hiện tại tôi có thể sửa đổi và lưu trữ các giá trị mới, nhưng tôi không thể hướng dẫn IDE Delphi áp dụng cấu hình mới, các thay đổi chỉ hiển thị nếu IDE được khởi động lại.
Tôi đã tìm kiếm đơn vị ToolsAPI và tôi tìm thấy các giao diện IOTAEditOptions
, IOTAHighlighter
và IOTAHighlightServices
nhưng dường như không có tùy chọn làm mới (tải lại) cài đặt đã sửa đổi.
Ngoài ra tôi đã thử unmangle (sử dụng tdump) và gọi các chức năng của tập tin coreide1XX.bpl trực tiếp, nhưng điều này đã không làm việc quá.
00420B94 17411 1F39 Editcolorpage::TEditorColor::
00422188 17400 1F3A __fastcall Editcolorpage::TEditorColor::ColorClick(System::TObject *)
0042174C 17407 1F3B __fastcall Editcolorpage::TEditorColor::ColorSpeedSettingClick(System::TObject *)
004224BC 17396 1F3C __fastcall Editcolorpage::TEditorColor::DefaultClick(System::TObject *)
00422414 17397 1F3D __fastcall Editcolorpage::TEditorColor::EditorColorBroadcast(System::TObject *, Winapi::Messages::TMessage&)
00421584 17409 1F3E __fastcall Editcolorpage::TEditorColor::EditorColorCreate(System::TObject *)
00421730 17408 1F3F __fastcall Editcolorpage::TEditorColor::EditorColorDestroy(System::TObject *)
004217B0 17406 1F40 __fastcall Editcolorpage::TEditorColor::ElementListClick(System::TObject *)
004222E8 17399 1F41 __fastcall Editcolorpage::TEditorColor::FontClick(System::TObject *)
004225DC 17395 1F42 __fastcall Editcolorpage::TEditorColor::HelpClick(System::TObject *)
00421AE8 17404 1F43 __fastcall Editcolorpage::TEditorColor::InitLineFlags(const System::DelphiInterface<Toolsapi::IOTAHighlighterPreview>)
004219B8 17405 1F44 __fastcall Editcolorpage::TEditorColor::InitSamplePane()
00421BC8 17403 1F45 __fastcall Editcolorpage::TEditorColor::InitSyntaxEditView(const System::DelphiInterface<Toolsapi::IOTAHighlighterPreview>)
0042262C 17393 1F46 __fastcall Editcolorpage::TEditorColor::LoadHighlightPreviews()
004225F4 17394 1F47 __fastcall Editcolorpage::TEditorColor::MarkDirty()
004220E4 17401 1F48 __fastcall Editcolorpage::TEditorColor::SampleClick(System::TObject *)
00422080 17402 1F49 __fastcall Editcolorpage::TEditorColor::SetColorSpeedSetting(Vedopts::TColorSpeedSetting)
0042238C 17398 1F4A __fastcall Editcolorpage::TEditorColor::UpdateSamplePane()
00422814 17392 1F4B __fastcall Editcolorpage::TEditorColor::tbsetPreviewsChange(System::TObject *, int, bool&)
004AA8D4 17390 1F4C __fastcall Editcolorpage::initialization()
00423C38 17413 1F4D __fastcall Editdisplaypage::Finalization()
How I can instruct to the Delphi IDE refresh the modified syntax highlight colors using OTA (Open Tools API)?
Hãy cho tôi biết nếu bạn cần thêm thông tin hoặc nếu câu hỏi là không rõ ràng.
Đó là một cảnh quay dài, nhưng có thể gọi là 'IOTAEditView.Paint' cho mọi trình soạn thảo mô-đun đang hoạt động? – NGLN
Tôi không nghĩ rằng nó sẽ làm việc @NGLN, bởi vì như tôi hiểu nó IDE chỉ tải các thiết lập màu sắc trên initalization. Tôi cũng không tin rằng có bất kỳ giao diện nào trong OTAPI cho phép bạn khởi tạo lại các thuộc tính đó. – LaKraven
Hiệu chỉnh: Các cài đặt này xuất hiện để được khởi động lại khi bạn đóng hộp thoại Tùy chọn môi trường. Cheat có thể chỉ để plugin của bạn hiển thị hộp thoại Environment Options và hướng dẫn người dùng đóng nó bằng tay. Không thanh lịch khủng khiếp, nhưng nên có hiệu quả. – LaKraven