! Macros for saving and loading buffer sessions ! ! Path of the session profile. Change this to save/load a custom profile. If empty, no session will be saved. ! EU[session.path]Q[$SCITECOCONFIG]/.teco_session ! Save current session to the file specified by "session.path" ! @[session.save]{ :Q[session.path]"= Oend ' Q*U.[curbuf] EJ< %.bEB ESGETFIRSTVISIBLELINEU.[fvline] ESGETXOFFSETU.[xoff] .U.[dot] :@EU.[session]{EBQ* \.[fvline]ESSETFIRSTVISIBLELINE \.[xoff]ESSETXOFFSET \.[dot]:J^M} :Q*"= -1U.u ' > ! We always start with an unnamed file in the ring, so we may have to remove it: ! Q.u"F :@EU.[session]{EB -EF^M} ' :@EU.[session]{\.[curbuf]EB^M} E%.[session]Q[session.path] Q.[curbuf]EB !end!} ! Load session specified by "session.path" ! @[session.load]{ EJ<-EF> ! now we have only one unnamed buffer ! EQ.x ENQ[session.path] Z"= 1EB | :EMQ[session.path] ' } ! Call this to set up the session path unique to the Git repository of the current working directory (if there is one). This requires the Git command-line client in $PATH. ! @[session.git]{ ! if there is no Git repository, session.path is left as it is ! :EG[session.path]git rev-parse --show-toplevel"S [* EQ[session.path] ZJ -D I/.teco_session ]* ' } ! Call to set up the session path unique to the SVN working copy containing the current working directory. Requires the SVN client v1.7 or later in $PATH. ! @[session.svn]{ ! if there is no SVN working copy, session.path is left as it is ! :EG.isvn info --xml"S [* EQ.i :S"S .(S