Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

NppExec 0.5.0 to 0.5.1 dev

NppExec
DV
2013-05-28
2014-01-15
  • DV
    DV
    2013-05-28

    Just to fix the direction we are moving:
    NppExec_050_to_051_20130526_src-3.zip
    1. (proposed by Adrien Vogt-Schilb) why not saving automatically the options every, say, ten minutes? This would use virtually no resources, and heuristically work around this kind of bug [non-saved options caused by Notepad++ crashed by another plugin] in many cases before the user notices any problem!
    Now there is an option 'AutoSave_Seconds' (see "NppExec_TechInfo.txt").
    2. (found out during communication with stgeorge) NppExec adds "\r\n" [to the input string] to emulate the Enter key. Probably NppExec should add just "\n" instead of "\r\n".
    Now there is an option 'Key_Enter' (see "NppExec_TechInfo.txt").

     
    Last edit: DV 2013-05-28
  • DV
    DV
    2013-05-29

    The bad thing with this auto-save functionality that, ideally, we need to block modifications of ALL components that are being saved. Such blocking has not been done currently and I don't have irrepressible wish to find all the related places and implement it there. Probably there can be a "lite" solution such as do not save while the Execute dialog or the Options/AdvancedOptions dialog is shown.

    P.S. I think I'll disable this feature by default - because with its current implementation it potentially may cause problems if some option is being modified while it is being saved.

     
    Last edit: DV 2013-06-17
  • DV
    DV
    2013-06-17

    Need to keep that in mind: "How to send an EOF in NppExec console?" https://sourceforge.net/p/notepad-plus/discussion/482781/thread/db271da3/
    Probably EOF's ASCII code < alt>+<26> should be sent by Ctrl+Z when there is a child process running in the Console.

     
    Last edit: DV 2013-06-17
  • DV
    DV
    2013-06-26

    There's an error in "help set". It says:
    set s ~ substr 2 2 abcde // cd (2 characters from position 3)
    should be:
    set s ~ substr 2 2 abcde // cd (2 characters from position 2)

     
  • DV
    DV
    2013-07-29

    NppExec_050_to_051_20130729_src-2.zip :
    - error in the built-in help for "set s ~ substr 2 2" fixed
    - auto-save interval set to 0 by default
    - Crtl+Z added

     
    Last edit: DV 2013-07-29
  • DV
    DV
    2013-08-15

    Next step to do: to ensure that NppExec's options are saved even in case of some issues at Notepad++'s exit (such as crash of some plugin),
    g_nppExec.SaveOptions(); needs to be invoked on the NPPN_SHUTDOWN notification.
    I need to decide whether it would be better to do it after running the NppExec's exit script (if any) - or before it. Probably "after" would be more consistent.

     
  • DV
    DV
    2013-09-07

    Next, I'm updating the documentation and thinking about one thing that most of you wanted for sure but were afraid to ask ;) I mean local variables that live inside a script being executed and then automatically disappear after the script has been executed. I'm imaging such variables in a from of "set local x = something" where the keyword "local" will mean it's a local variable.

     
  • DV
    DV
    2013-09-20

    Latest pre-0.5.1 version is available as "NppExec_050_to_051_20130920_src.zip".
    Local variables added, the Manual initially updated.
    TODO: 1. reflect "set local " syntax in the built-in help; 2. use "set local" in the examples, including the Manual; 3. ensure everything works as expected.

     
  • DV
    DV
    2013-09-28

    "NppExec_050_to_051_20130928_src.zip",
    the most interesting changes:
    - NppExecEngine.cpp has been refactored once again. (I postponed that since NppExec v.0.3 - so now it's done at last :)). In particular, macro variables are now handled by corresponding class(es).
    - no more g_nppExec, g_opt and g_scriptLog. They are in the form of Runtime::GetNppExec() now. (Reminds the magic AfxGetApp(), doesn't it? ;))
    - internal Logger can now write log files. It's very powerful feature to understand what's going up inside of NppExec - especially if somethin goes wrong.
    - the previous TODO list is still actual.

     
  • DV
    DV
    2013-09-28

    Here is an example of new log file created by NppExec:

    Log start >>
    CNppExec::ReadOptions - start
    CNppExec::ReadOptions - end
    NPPN_READY - start
    NPPN_READY - end
    ; @Input Command: npe_cmdalias bye = npp_menucommand File/Exit
    ; CScriptEngine::Run - start
    ; command info
    Current command item:  p = 0x1659F90
    {
       _item  = "npe_cmdalias bye = npp_menucommand File/Exit"
       _prev  = 0x0
       _next  = 0x0
       _owner = 0x1606064
    }
    ; executing ModifyCommandLine
    ModifyCommandLine()
    {
       [in]  "npe_cmdalias bye = npp_menucommand File/Exit"
       GetCmdType()
       {
          [in]  "npe_cmdalias bye = npp_menucommand File/Exit"
          CheckCmdAliases()
          {
             ; command aliases enabled
             [in]  "npe_cmdalias bye = npp_menucommand File/Exit"
             [out] "npe_cmdalias bye = npp_menucommand File/Exit"
          }
          [ret] 0x1B (NPE_CMDALIAS)
       }
       ; command argument(s):
       [out] "bye = npp_menucommand File/Exit"
       ; command type:
       [ret] 0x1B
    }
    ; executing NPE_CMDALIAS bye = npp_menucommand File/Exit
    <MSG> NPE_CMDALIAS: bye = npp_menucommand File/Exit
    <MSG> BYE -> npp_menucommand File/Exit
    ; CScriptEngine::Run - end
    <MSG> ================ READY ================
    ; @Input Command: bye
    ; CScriptEngine::Run - start
    ; command info
    Current command item:  p = 0x1659BB0
    {
       _item  = "bye"
       _prev  = 0x0
       _next  = 0x0
       _owner = 0x1606064
    }
    ; executing ModifyCommandLine
    ModifyCommandLine()
    {
       [in]  "bye"
       GetCmdType()
       {
          [in]  "bye"
          CheckCmdAliases()
          {
             ; command aliases enabled
             [in]  "bye"
             [out] "npp_menucommand File/Exit"
          }
          [ret] 0x1F (NPP_MENUCOMMAND)
       }
       CheckCmdArgs()
       {
          [in]  "File/Exit"
          [out] "File/Exit"
       }
       CheckNppMacroVars()
       {
          [in]  "File/Exit"
          [out] "File/Exit"
       }
       CheckPluginMacroVars()
       {
          [in]  "File/Exit"
          [out] "File/Exit"
       }
       CheckUserMacroVars()
       {
          [in]  "File/Exit"
          [out] "File/Exit"
       }
       CheckEmptyMacroVars()
       {
          [in]  "File/Exit"
          ; the function is enabled
          [out] "File/Exit"
       }
       ; command argument(s):
       [out] "File/Exit"
       ; command type:
       [ret] 0x1F
    }
    ; executing NPP_MENUCOMMAND File/Exit
    <MSG> NPP_MENUCOMMAND: File/Exit
    ; menu item separator: /
    ; menu item found: id = 41011
    NPPN_SHUTDOWN - start
       CNppExec::SaveOptions - start
       CNppExec::SaveOptions - end
    NPPN_SHUTDOWN - end
    ; CScriptEngine::Run - end
    <MSG> ================ READY ================
    CNppExec::SaveOptions - start
    CNppExec::SaveOptions - end
    Log exit.
    
     
  • DV
    DV
    2013-09-29

    And here is "NppExec_050_to_051_20130928_dll.zip" - for those who want to taste it but have no ability to build from sources. Bon appetit! :)

     
  • DV
    DV
    2013-09-30

    "NppExec_050_to_051_20130930_src.zip" and "NppExec_050_to_051_20130930_dll.zip" - fixing problems with "npe_debuglog 1" caused by latest changes in logging.

     
  • DV
    DV
    2013-10-30

    Well, looks like I've failed to release ver. 0.5.1 in this October. It's a fact :)
    Have to say I did not actively develop it during latest month - first I had some problems with health, then at last finished one of my favourite poem, then had some problems with health again... Looking at the scope of expected changes inside NppExec, I can suppose that either ver. 0.5.1 will be released later this year or ver. 0.6 with all the planned changes will be released some day :)

     
  • DV
    DV
    2014-01-15

    Back to development! :)
    NppExec_050_to_051_20140115:
    1. NPE_CONSOLE k0..3 to control if NppExec's Console catches shortcut keys related to NppExec's menu items or scripts;
    2. built-in documentation updated (to reflect "set local" and "npe_console k0..3").

     
  • DV
    DV
    2014-01-15

    ...And don't be scared by the inreased size of NppExec.dll - I've just compiled it with VS2008 instead of usual VS2005. That's the cause of +100 kB oO