Beispiel #1
0
        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
                };
            }
        }
Beispiel #2
0
        static public bool ExecuteScript(NppScript script)
        {
            var scriptInfo = configuredScripts[script.ScriptId];

            return(ExecuteScript(scriptInfo));
        }
Beispiel #3
0
        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);
            }
        }