! 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 ! [_ 1:EN*Q[session.path]"S :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 Mercurial repository of the current working directory. This requires the Mercurial command-line client in $PATH. ! @[session.hg]{ ! if there is no Hg repository, session.path is left as it is ! :EG[session.path]hg root"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