mirror of
https://github.com/SqrtMinusOne/sqrtminusone.github.io.git
synced 2025-12-10 15:53:03 +03:00
deploy: 68f8a28476
This commit is contained in:
parent
58aa5ad058
commit
4348b52e5f
4 changed files with 45 additions and 59 deletions
|
|
@ -10186,7 +10186,7 @@ Didn’t work out as I expected, so I’ve made <code>org-journal-tags</
|
|||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:key</span> (<span style="color:#008000">lambda</span> () (<span style="color:#19177c">my/password-store-get-field</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"My_Online/Accounts/openrouter"</span> <span style="color:#ba2121">"api-key"</span>))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:stream</span> <span style="color:#800">t</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:models</span> <span style="color:#666">'</span>(<span style="color:#ba2121">"anthropic/claude-sonnet-4"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:models</span> <span style="color:#666">'</span>(<span style="color:#ba2121">"anthropic/claude-sonnet-4.5"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"qwen/qwen3-coder"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"qwen/qwen3-coder:free"</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">gptel--known-backends</span>
|
||||
|
|
@ -11249,21 +11249,24 @@ Didn’t work out as I expected, so I’ve made <code>org-journal-tags</
|
|||
</span></span><span style="display:flex;"><span> total_transfers <span style="color:#666">+=</span> res<span style="color:#666">.</span>get(<span style="color:#ba2121">'stats'</span>, {})<span style="color:#666">.</span>get(<span style="color:#ba2121">'transfers'</span>, <span style="color:#666">0</span>)
|
||||
</span></span><span style="display:flex;"><span> total_deleted <span style="color:#666">+=</span> res<span style="color:#666">.</span>get(<span style="color:#ba2121">'stats'</span>, {})<span style="color:#666">.</span>get(<span style="color:#ba2121">'deletes'</span>, <span style="color:#666">0</span>)
|
||||
</span></span><span style="display:flex;"><span> total_renamed <span style="color:#666">+=</span> res<span style="color:#666">.</span>get(<span style="color:#ba2121">'stats'</span>, {})<span style="color:#666">.</span>get(<span style="color:#ba2121">'renames'</span>, <span style="color:#666">0</span>)
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> msg <span style="color:#666">=</span> <span style="color:#ba2121">''</span>
|
||||
</span></span><span style="display:flex;"><span> level <span style="color:#666">=</span> <span style="color:#ba2121">'normal'</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> total_transfers <span style="color:#666">></span> <span style="color:#666">0</span>:
|
||||
</span></span><span style="display:flex;"><span> msg <span style="color:#666">+=</span> <span style="color:#ba2121">f</span><span style="color:#ba2121">'''Transferred </span><span style="color:#b68;font-weight:bold">{</span>total_transfers<span style="color:#b68;font-weight:bold">}</span><span style="color:#ba2121"> files (</span><span style="color:#b68;font-weight:bold">{</span>sizeof_fmt(total_bytes)<span style="color:#b68;font-weight:bold">}</span><span style="color:#ba2121">)</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#ba2121">'''</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> total_deleted <span style="color:#666">></span> <span style="color:#666">0</span>:
|
||||
</span></span><span style="display:flex;"><span> msg <span style="color:#666">+=</span> <span style="color:#ba2121">f</span><span style="color:#ba2121">'''Deleted </span><span style="color:#b68;font-weight:bold">{</span>total_transfers<span style="color:#b68;font-weight:bold">}</span><span style="color:#ba2121"> files</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#ba2121">'''</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> total_renamed <span style="color:#666">></span> <span style="color:#666">0</span>:
|
||||
</span></span><span style="display:flex;"><span> msg <span style="color:#666">+=</span> <span style="color:#ba2121">f</span><span style="color:#ba2121">'''Renamed </span><span style="color:#b68;font-weight:bold">{</span>total_renamed<span style="color:#b68;font-weight:bold">}</span><span style="color:#ba2121"> files</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#ba2121">'''</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> <span style="color:#008000">len</span>(error_folders) <span style="color:#666">></span> <span style="color:#666">0</span>:
|
||||
</span></span><span style="display:flex;"><span> error_msg <span style="color:#666">=</span> <span style="color:#ba2121">f</span><span style="color:#ba2121">'Sync error for remote </span><span style="color:#b68;font-weight:bold">{</span>REMOTE<span style="color:#b68;font-weight:bold">}</span><span style="color:#ba2121">!'</span>
|
||||
</span></span><span style="display:flex;"><span> msg <span style="color:#666">+=</span> <span style="color:#ba2121">'''</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#ba2121">Sync errors for the following folders:'''</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">for</span> folder <span style="color:#a2f;font-weight:bold">in</span> error_folders:
|
||||
</span></span><span style="display:flex;"><span> error_msg <span style="color:#666">+=</span> <span style="color:#ba2121">'''</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#ba2121">- '''</span> <span style="color:#666">+</span> folder
|
||||
</span></span><span style="display:flex;"><span> notify(<span style="color:#ba2121">f</span><span style="color:#ba2121">'rclone sync </span><span style="color:#b68;font-weight:bold">{</span>REMOTE<span style="color:#b68;font-weight:bold">}</span><span style="color:#ba2121">'</span>, error_msg, level<span style="color:#666">=</span><span style="color:#ba2121">'critical'</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">else</span>:
|
||||
</span></span><span style="display:flex;"><span> msg <span style="color:#666">=</span> <span style="color:#ba2121">''</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> total_transfers <span style="color:#666">></span> <span style="color:#666">0</span>:
|
||||
</span></span><span style="display:flex;"><span> msg <span style="color:#666">+=</span> <span style="color:#ba2121">f</span><span style="color:#ba2121">'''Transferred </span><span style="color:#b68;font-weight:bold">{</span>total_transfers<span style="color:#b68;font-weight:bold">}</span><span style="color:#ba2121"> files (</span><span style="color:#b68;font-weight:bold">{</span>sizeof_fmt(total_bytes)<span style="color:#b68;font-weight:bold">}</span><span style="color:#ba2121">)</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#ba2121">'''</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> total_deleted <span style="color:#666">></span> <span style="color:#666">0</span>:
|
||||
</span></span><span style="display:flex;"><span> msg <span style="color:#666">+=</span> <span style="color:#ba2121">f</span><span style="color:#ba2121">'''Deleted </span><span style="color:#b68;font-weight:bold">{</span>total_transfers<span style="color:#b68;font-weight:bold">}</span><span style="color:#ba2121"> files</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#ba2121">'''</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> total_renamed <span style="color:#666">></span> <span style="color:#666">0</span>:
|
||||
</span></span><span style="display:flex;"><span> msg <span style="color:#666">+=</span> <span style="color:#ba2121">f</span><span style="color:#ba2121">'''Renamed </span><span style="color:#b68;font-weight:bold">{</span>total_renamed<span style="color:#b68;font-weight:bold">}</span><span style="color:#ba2121"> files</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#ba2121">'''</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> <span style="color:#008000">len</span>(msg) <span style="color:#666">></span> <span style="color:#666">0</span>:
|
||||
</span></span><span style="display:flex;"><span> notify(<span style="color:#ba2121">f</span><span style="color:#ba2121">'rclone sync </span><span style="color:#b68;font-weight:bold">{</span>REMOTE<span style="color:#b68;font-weight:bold">}</span><span style="color:#ba2121">'</span>, msg)
|
||||
</span></span><span style="display:flex;"><span> msg <span style="color:#666">+=</span> <span style="color:#ba2121">'''</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#ba2121">- '''</span> <span style="color:#666">+</span> folder
|
||||
</span></span><span style="display:flex;"><span> level <span style="color:#666">=</span> <span style="color:#ba2121">'critical'</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> <span style="color:#008000">len</span>(msg) <span style="color:#666">></span> <span style="color:#666">0</span>:
|
||||
</span></span><span style="display:flex;"><span> notify(<span style="color:#ba2121">f</span><span style="color:#ba2121">'rclone sync </span><span style="color:#b68;font-weight:bold">{</span>REMOTE<span style="color:#b68;font-weight:bold">}</span><span style="color:#ba2121">'</span>, msg, level<span style="color:#666">=</span>level)
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#19177c">__name__</span> <span style="color:#666">==</span> <span style="color:#ba2121">'__main__'</span>:
|
||||
</span></span><span style="display:flex;"><span> rclone_run_all(FOLDERS)
|
||||
|
|
@ -11375,7 +11378,7 @@ Didn’t work out as I expected, so I’ve made <code>org-journal-tags</
|
|||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">E.g. 10.03.R.01 Project Name -> Project Name."</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">replace-regexp-in-string</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">rx</span> <span style="color:#19177c">bos</span> (<span style="color:#00f">+</span> (<span style="color:#19177c">|</span> <span style="color:#19177c">num</span> <span style="color:#19177c">alpha</span> <span style="color:#ba2121">"."</span> <span style="color:#ba2121">"-"</span>)) <span style="color:#19177c">space</span>) <span style="color:#ba2121">""</span> <span style="color:#19177c">name</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">rx</span> <span style="color:#19177c">bos</span> (<span style="color:#00f">+</span> <span style="color:#19177c">num</span>) (<span style="color:#ba2121">? </span><span style="color:#ba2121">"."</span> (<span style="color:#00f">+</span> (<span style="color:#19177c">|</span> <span style="color:#19177c">num</span> <span style="color:#19177c">alpha</span> <span style="color:#ba2121">"."</span> <span style="color:#ba2121">"-"</span>))) <span style="color:#19177c">space</span>) <span style="color:#ba2121">""</span> <span style="color:#19177c">name</span>))
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/index--wakatime-escape</span> (<span style="color:#00f">string</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"Escape STRING for use in a WakaTime config file."</span>
|
||||
|
|
@ -11547,16 +11550,15 @@ Didn’t work out as I expected, so I’ve made <code>org-journal-tags</
|
|||
<p>The last piece is the navigation interface.</p>
|
||||
<p>Of course, plain dired does the job fine, thanks to the relatively low-depth filesystem structure. But I still want a navigation interface like <code>M-x projectile-switch-project</code>.</p>
|
||||
<h5 id="navigation-data">Navigation data</h5>
|
||||
<p>There are two slight problems with that.</p>
|
||||
<p>First, the index tree does not always have the full info. For instance, I have the <code>10.03.A Artifacts</code> folder, which I sync with MEGA and which has child folders like <code>10.03.A.01 smth</code> and so on. Names of the latter are not stored anywhere because I don’t see the point, which means we have to extract that from the filesystem.</p>
|
||||
<p>Second, as it turns out, there have to be two levels for navigation, which are delimited by the <code>project</code> property. I’m not sure if that the optimal way to implement Jonny.Decimal, but it works for me.</p>
|
||||
<p>So, a function to tackle the first problem:</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/index--nav-extend</span> (<span style="color:#19177c">name</span> <span style="color:#19177c">path</span>)
|
||||
<p>One problem is that the index tree does not always have the full info. E.g., I have the <code>10.03.A Artifacts</code> folder, which I sync with MEGA and which has child folders like <code>10.03.A.01 smth</code> and so on. Names of the latter are not stored anywhere because I don’t see the point, which means we have to extract that from the filesystem.</p>
|
||||
<p>So, a function to tackle this:</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/index--nav-extend</span> (<span style="color:#19177c">name</span> <span style="color:#19177c">path</span> <span style="color:#008000">&optional</span> <span style="color:#19177c">project</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"Find all index-related files in PATH.
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">NAME is the name of the root index entry, e.g. \"10.01
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">Something\". If PATH containts folders like \"10.01.01
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">Something\", \"10.01.02 ...\", they will be returned.
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">Something\", \"10.01.02 ...\", they will be returned. PROJECT is the
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">project name.
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">The return value is a form as defined by </span><span style="color:#19177c">`my/index--nav-get'</span><span style="color:#ba2121">."</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">when</span> (<span style="color:#00f">file-directory-p</span> <span style="color:#19177c">path</span>)
|
||||
|
|
@ -11583,7 +11585,7 @@ Didn’t work out as I expected, so I’ve made <code>org-journal-tags</
|
|||
</span></span><span style="display:flex;"><span> <span style="color:#666">`</span>(((<span style="color:#008000">:names</span> <span style="color:#666">.</span> (<span style="color:#666">,</span><span style="color:#19177c">name-1</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">:path</span> <span style="color:#666">.</span> <span style="color:#666">,</span>(<span style="color:#00f">concat</span> <span style="color:#19177c">path-1</span> <span style="color:#ba2121">"/"</span>)))))))))
|
||||
</span></span></code></pre></div><p>And one to get the navigation data structure.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/index--nav-get</span> (<span style="color:#19177c">tree</span> <span style="color:#008000">&optional</span> <span style="color:#19177c">names</span>)
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/index--nav-get</span> (<span style="color:#19177c">tree</span> <span style="color:#008000">&optional</span> <span style="color:#19177c">names</span> <span style="color:#19177c">project</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"Get the navigation structure from TREE.
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">TREE is a form as defined by </span><span style="color:#19177c">`my/index--tree-get'</span><span style="color:#ba2121">. NAMES is a
|
||||
|
|
@ -11595,7 +11597,7 @@ Didn’t work out as I expected, so I’ve made <code>org-journal-tags</
|
|||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121"> (\"10.01 Something\" \"10.01.01 Something\")
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">- `:path` - path to the folder, e.g.
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121"> \"/path/10 stuff/10.01 Something/10.01.01 Something/\"
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">- `:child-navs` - list of child navigation structures (optional)"</span>
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">- `:project` - project name."</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">seq-sort-by</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">lambda</span> (<span style="color:#19177c">item</span>) (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:path</span> <span style="color:#19177c">item</span>))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#00f">#'string-lessp</span>
|
||||
|
|
@ -11603,28 +11605,24 @@ Didn’t work out as I expected, so I’ve made <code>org-journal-tags</
|
|||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">lambda</span> (<span style="color:#19177c">acc</span> <span style="color:#19177c">elem</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let*</span> ((<span style="color:#19177c">name</span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:name</span> <span style="color:#19177c">elem</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">path</span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:path</span> <span style="color:#19177c">elem</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">cond</span> ((<span style="color:#19177c">alist-get</span> <span style="color:#008000">:project</span> <span style="color:#19177c">elem</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">current-nav</span> <span style="color:#666">`</span>((<span style="color:#008000">:names</span> <span style="color:#666">.</span> (<span style="color:#666">,@</span><span style="color:#19177c">names</span> <span style="color:#666">,</span><span style="color:#19177c">name</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">:path</span> <span style="color:#666">.</span> <span style="color:#666">,</span><span style="color:#19177c">path</span>))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">when-let</span> (<span style="color:#19177c">child-navs</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">and</span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:children</span> <span style="color:#19177c">elem</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/index--nav-get</span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:children</span> <span style="color:#19177c">elem</span>))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setf</span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:child-navs</span> <span style="color:#19177c">current-nav</span>) <span style="color:#19177c">child-navs</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">push</span> <span style="color:#19177c">current-nav</span> <span style="color:#19177c">acc</span>)))
|
||||
</span></span><span style="display:flex;"><span> ((<span style="color:#19177c">alist-get</span> <span style="color:#008000">:children</span> <span style="color:#19177c">elem</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">cond</span> ((<span style="color:#19177c">alist-get</span> <span style="color:#008000">:children</span> <span style="color:#19177c">elem</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">when-let</span> (<span style="color:#19177c">child-navs</span> (<span style="color:#19177c">my/index--nav-get</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:children</span> <span style="color:#19177c">elem</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#666">`</span>(<span style="color:#666">,@</span><span style="color:#19177c">names</span> <span style="color:#666">,</span><span style="color:#19177c">name</span>)))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#666">`</span>(<span style="color:#666">,@</span><span style="color:#19177c">names</span> <span style="color:#666">,</span><span style="color:#19177c">name</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">or</span> (<span style="color:#008000">when</span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:project</span> <span style="color:#19177c">elem</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">name</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">project</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">cl-loop</span> <span style="color:#19177c">for</span> <span style="color:#19177c">child-nav</span> <span style="color:#19177c">in</span> <span style="color:#19177c">child-navs</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">do</span> (<span style="color:#008000">push</span> <span style="color:#19177c">child-nav</span> <span style="color:#19177c">acc</span>))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#800">t</span> (<span style="color:#19177c">if-let</span> ((<span style="color:#19177c">extended-nav</span> (<span style="color:#19177c">my/index--nav-extend</span> <span style="color:#19177c">name</span> <span style="color:#19177c">path</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#800">t</span> (<span style="color:#19177c">if-let</span> ((<span style="color:#19177c">extended-nav</span> (<span style="color:#19177c">my/index--nav-extend</span> <span style="color:#19177c">name</span> <span style="color:#19177c">path</span> <span style="color:#19177c">project</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">cl-loop</span> <span style="color:#19177c">for</span> <span style="color:#19177c">child-nav</span> <span style="color:#19177c">in</span> <span style="color:#19177c">extended-nav</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">do</span> (<span style="color:#008000">setf</span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:names</span> <span style="color:#19177c">child-nav</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">append</span> <span style="color:#19177c">names</span> (<span style="color:#00f">list</span> <span style="color:#19177c">name</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:names</span> <span style="color:#19177c">child-nav</span>)))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">do</span> (<span style="color:#008000">push</span> <span style="color:#19177c">child-nav</span> <span style="color:#19177c">acc</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">push</span> <span style="color:#666">`</span>((<span style="color:#008000">:names</span> <span style="color:#666">.</span> (<span style="color:#666">,@</span><span style="color:#19177c">names</span> <span style="color:#666">,</span><span style="color:#19177c">name</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">:path</span> <span style="color:#666">.</span> <span style="color:#666">,</span><span style="color:#19177c">path</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">:path</span> <span style="color:#666">.</span> <span style="color:#666">,</span><span style="color:#19177c">path</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">:project</span> <span style="color:#666">.</span> <span style="color:#666">,</span><span style="color:#19177c">project</span>))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">acc</span>))))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">acc</span>))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">tree</span>
|
||||
|
|
@ -11651,7 +11649,10 @@ Didn’t work out as I expected, so I’ve made <code>org-journal-tags</
|
|||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">NAV is a structure as defined by </span><span style="color:#19177c">`my/index--nav-get'</span><span style="color:#ba2121">."</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let*</span> ((<span style="color:#19177c">collection</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">mapcar</span> (<span style="color:#008000">lambda</span> (<span style="color:#19177c">item</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">cons</span> (<span style="color:#00f">car</span> (<span style="color:#19177c">last</span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:names</span> <span style="color:#19177c">item</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">cons</span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">name</span> (<span style="color:#00f">car</span> (<span style="color:#19177c">last</span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:names</span> <span style="color:#19177c">item</span>)))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:project</span> <span style="color:#19177c">item</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">format</span> <span style="color:#ba2121">"%s / %s"</span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:project</span> <span style="color:#19177c">item</span>) <span style="color:#19177c">name</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">name</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:path</span> <span style="color:#19177c">item</span>)))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">nav</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">vertico-sort-function</span> <span style="color:#800">nil</span>))
|
||||
|
|
@ -11669,36 +11670,21 @@ Didn’t work out as I expected, so I’ve made <code>org-journal-tags</
|
|||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">string-prefix-p</span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:path</span> <span style="color:#19177c">item</span>) <span style="color:#19177c">path</span>))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">nav</span>))
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/index-nav</span> (<span style="color:#19177c">arg</span> <span style="color:#008000">&optional</span> <span style="color:#19177c">func</span>)
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/index-nav</span> (<span style="color:#008000">&optional</span> <span style="color:#19177c">func</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"Navigate the filesystem index.
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">If ARG is nil, navigate all levels sequentially from the top one.
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">If ARG is '(4), select another directory from the same level.
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">FUNC is the function to call with the selected path. It defaults
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">to </span><span style="color:#19177c">`dired'</span><span style="color:#ba2121"> if used interactively."</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">interactive</span> (<span style="color:#00f">list</span> <span style="color:#19177c">current-prefix-arg</span> <span style="color:#00f">#'</span><span style="color:#19177c">dired</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">interactive</span> (<span style="color:#00f">list</span> <span style="color:#00f">#'</span><span style="color:#19177c">dired</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let*</span> ((<span style="color:#19177c">nav</span> (<span style="color:#19177c">my/index--nav-retrive</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">current-nav</span> (<span style="color:#19177c">my/index--nav-find-path</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">nav</span> (<span style="color:#00f">expand-file-name</span> <span style="color:#19177c">default-directory</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">current-child-navs</span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:child-navs</span> <span style="color:#19177c">current-nav</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">cond</span> ((<span style="color:#00f">null</span> <span style="color:#19177c">arg</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">selected</span> (<span style="color:#19177c">my/index--nav-find-path</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">nav</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/index--nav-prompt</span> <span style="color:#19177c">nav</span>))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">if-let</span> (<span style="color:#19177c">child-navs</span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:child-navs</span> <span style="color:#19177c">selected</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">funcall</span> <span style="color:#19177c">func</span> (<span style="color:#19177c">my/index--nav-prompt</span> <span style="color:#19177c">child-navs</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">funcall</span> <span style="color:#19177c">func</span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:path</span> <span style="color:#19177c">selected</span>)))))
|
||||
</span></span><span style="display:flex;"><span> ((<span style="color:#008000">and</span> (<span style="color:#00f">equal</span> <span style="color:#19177c">arg</span> <span style="color:#666">'</span>(<span style="color:#666">4</span>)) <span style="color:#19177c">current-child-navs</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">funcall</span> <span style="color:#19177c">func</span> (<span style="color:#19177c">my/index--nav-prompt</span> <span style="color:#19177c">current-child-navs</span>)))
|
||||
</span></span><span style="display:flex;"><span> ((<span style="color:#008000">and</span> (<span style="color:#00f">equal</span> <span style="color:#19177c">arg</span> <span style="color:#666">'</span>(<span style="color:#666">4</span>)) (<span style="color:#00f">null</span> <span style="color:#19177c">current-child-navs</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">funcall</span> <span style="color:#19177c">func</span> (<span style="color:#19177c">my/index--nav-prompt</span> <span style="color:#19177c">nav</span>))))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">selected</span> (<span style="color:#19177c">my/index--nav-find-path</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">nav</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/index--nav-prompt</span> <span style="color:#19177c">nav</span>))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">funcall</span> <span style="color:#19177c">func</span> (<span style="color:#19177c">alist-get</span> <span style="color:#008000">:path</span> <span style="color:#19177c">selected</span>))))
|
||||
</span></span></code></pre></div><p>Finally, something that I can bind to a key.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/index-nav-with-select-file</span> (<span style="color:#19177c">arg</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">interactive</span> (<span style="color:#00f">list</span> <span style="color:#19177c">current-prefix-arg</span>))
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/index-nav-with-select-file</span> ()
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">interactive</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/index-nav</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">arg</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">lambda</span> (<span style="color:#19177c">dir</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">default-directory</span> <span style="color:#19177c">dir</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">projectile-find-file</span>)))))
|
||||
|
|
|
|||
BIN
stats/all.png
BIN
stats/all.png
Binary file not shown.
|
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
Loading…
Add table
Reference in a new issue