public ScriptInfo(string file, int id = -1) { Id = id; File = file; Name = ToDisplayName(file); if (!IsSeparator) { using (var reader = new StreamReader(file)) { while (PorcessConfigLine(reader.ReadLine())) { } } LastModified = System.IO.File.GetLastWriteTime(file); Script = new NppScriptStub { ScriptFile = file, ScriptId = id }; } }
static public bool ExecuteScript(NppScript script) { var scriptInfo = configuredScripts[script.ScriptId]; return(ExecuteScript(scriptInfo)); }
bool PorcessConfigLine(string data) { /* * //npp_tag OutputPanel * //npp_toolbar_image Shell32.dll|3 * //npp_shortcut Ctrl+Alt+Shift+F10 */ if (data.StartsWith("//npp_toolbar_image ")) { try { string[] parts = data.Split(new[] { ' ' }, 2, StringSplitOptions.RemoveEmptyEntries); parts = parts.Last().Split(new[] { '|' }, 2, StringSplitOptions.RemoveEmptyEntries); string file = parts.First(); if (file.EndsWith(".dll", StringComparison.OrdinalIgnoreCase) || file.EndsWith(".exe", StringComparison.OrdinalIgnoreCase)) { int index = 0; if (parts.Count() == 2) { int.TryParse(parts.Last(), out index); } ToolbarImage = NppScript.ExtractIcon(file, index).ToBitmap(); } } catch { ToolbarImage = NppScript.ExtractIcon("Shell32.dll", 1).ToBitmap(); } return(true); } else if (data.StartsWith("//npp_tag ")) { try { string[] parts = data.Split(new[] { ' ' }, 2, StringSplitOptions.RemoveEmptyEntries); Tag = parts[1]; } catch { } return(true); } else if (data.StartsWith("//npp_shortcut ")) { try { string[] parts = data.Split(new[] { ' ', '+' }, StringSplitOptions.RemoveEmptyEntries); Keys key; if (Enum.TryParse <Keys>(parts.Last(), true, out key)) { this.Shortcut = new ShortcutKey(parts.Contains("Ctrl"), parts.Contains("Alt"), parts.Contains("Shift"), key); } } catch { } return(true); } else { return(false); } }