Files
plainleaf/libraries/Library/Std/Infrastructure/Search.md
T

798 B

description, tags
description tags
Implements the search page meta

Implements a ^Library/Std/APIs/Virtual Page (prefixed with search:) exposing full-text search.

Implementation

-- priority: 5
command.define {
  name = "Search Space",
  key = "Ctrl-Shift-f",
  mac = "Cmd-Shift-f",
  run = function()
    local phrase = editor.prompt "Search for:"
    if phrase then
      editor.navigate("search:" .. phrase)
    end
  end
}

virtualPage.define {
  pattern = "search:(.+)",
  run = function(phrase)
    local results = search.ftsSearch(phrase)
    local pageText = "# Search results for '" .. phrase .. "'\n"
    for r in each(results) do
      pageText = pageText .. spacelua.interpolate("* [[${r.id}|${r.id}]] (score ${r.score})\n", {r=r})
    end
    return pageText
  end
}