AnyCpuBridgeMain.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using Kbg.NppPluginNET.PluginInfrastructure;
  2. using MarkdownRenderer;
  3. using System;
  4. using System.Diagnostics;
  5. using System.Reflection;
  6. namespace NppMarkdownRenderer
  7. {
  8. public static class AnyCpuBridgeMain
  9. {
  10. static AnyCpuBridgeMain()
  11. {
  12. try
  13. {
  14. InitReferenceAssembly();
  15. }
  16. catch (Exception exception)
  17. {
  18. System.Windows.Forms.MessageBox.Show($"Plugin init fail:{PluginName},{exception}");
  19. throw;
  20. }
  21. }
  22. private static void InitReferenceAssembly()
  23. {
  24. MarkdownRendererMain.Init();
  25. }
  26. public static readonly string PluginName = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).ProductName;
  27. public static void CommandMenuInit()
  28. {
  29. PluginBridge.SetupPluginMenu();
  30. }
  31. public static void SetToolBarIcon()
  32. {
  33. PluginBridge.SetupToolBarIcon();
  34. }
  35. public static void OnNotification(ScNotification notification)
  36. {
  37. if (false == PluginBridge.Enable) return;
  38. //Check for updates
  39. if (notification.Header.Code == (uint)SciMsg.SCN_UPDATEUI)
  40. {
  41. //Update the view
  42. if (0 != (notification.Updated & (uint)SciMsg.SC_UPDATE_V_SCROLL)) PluginBridge.UpdateScroll();
  43. }
  44. else if (notification.Header.Code == (uint)NppMsg.NPPN_BUFFERACTIVATED)
  45. {
  46. //Update the scintilla handle in all cases to keep track of which instance is active
  47. PluginBridge.FlushState();
  48. PluginBridge.UpdateText();
  49. PluginBridge.UpdateScroll();
  50. }
  51. else if (notification.Header.Code == (uint)SciMsg.SCN_MODIFIED
  52. && (notification.ModificationType & ((uint)SciMsg.SC_MOD_INSERTTEXT | (uint)SciMsg.SC_MOD_DELETETEXT)) != 0)
  53. {
  54. //Track if any text modifications have been made
  55. PluginBridge.UpdateText();
  56. }
  57. }
  58. public static void PluginCleanUp()
  59. {
  60. PluginBridge.Exit();
  61. }
  62. }
  63. }