zaw-sources / zaw-webmaterials.zsh

# -*- sh -*-
zmodload zsh/parameter

function zaw-src-webmaterials() {
    candidates=("${(ps:\n:)$(find $ZAW_WEBMATERIALS_DIR | sed -e '1d' -e s#$ZAW_WEBMATERIALS_DIR/##g -e 's#.*c4che.*##g' -e 's#.*pickle.*##g')}")
    actions=("zaw-callback-webmaterials-open" "zaw-callback-webmaterials-append-to-buffer")
    act_descriptions=("open webmaterials document" "append to edit buffer")
}

zaw-register-src -n webmaterials zaw-src-webmaterials

export ZAW_WEBMATERIALS_DIR="$HOME/repos/webmaterials/books"
export ZAW_WEBMATERIALS_OPEN=gnome-open

function zaw-callback-webmaterials-open() {
    local orig_buffer="${BUFFER}"
    BUFFER="${ZAW_WEBMATERIALS_OPEN} \"${ZAW_WEBMATERIALS_DIR}/${(j:; :)@}\""
    zle accept-line
}

function zaw-callback-webmaterials-append-to-buffer() {
    LBUFFER="${BUFFER}\"${ZAW_WEBMATERIALS_DIR}/${(j:; :)@}\""
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.