-
Notifications
You must be signed in to change notification settings - Fork 0
/
felis.scm
37 lines (24 loc) · 1.04 KB
/
felis.scm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
(require (prefix-in helix. "helix/commands.scm"))
(require "helix/editor.scm")
(provide felis-open
felis-file-browser
felis-file-browser-cwd)
;; Utils
(define (editor-get-doc-if-exists doc-id)
(if (editor-doc-exists? doc-id) (editor->get-document doc-id) #f))
(define (doc-path doc-id)
(let ((document (editor-get-doc-if-exists doc-id)))
(if document (Document-path document) #f)))
(define (current-path)
(let* ([focus (editor-focus)]
[focus-doc-id (editor->doc-id focus)])
(doc-path focus-doc-id)))
;; Commands
(define (felis-open)
(let ((path ( ~> (open-input-file "/tmp/felis-open.txt") (read-port-to-string))))
(helix.open path)))
(define (felis-file-browser felis-bin browser-bin)
(helix.run-shell-command felis-bin "open-browser" "-l" "--steel" browser-bin))
(define (felis-file-browser-cwd felis-bin browser-bin)
(let ((current-file (current-path)))
(helix.run-shell-command felis-bin "open-browser" "-l" "--steel" browser-bin (trim-end-matches current-file (file-name current-file)))))