diff --git a/README.md b/README.md index 00020a3..3f723c9 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,9 @@ A [devdocs](https://devdocs.io) client { "maskudo/devdocs.nvim", lazy = false, + dependencies = { + "folke/snacks.nvim", + }, keys = { { "ho", @@ -27,6 +30,23 @@ A [devdocs](https://devdocs.io) client "DevDocs install", desc = "Install Devdocs", }, + { + "hv", + mode = "n", + function() + local devdocs = require("devdocs") + local installedDocs = devdocs.GetInstalledDocs() + vim.ui.select(installedDocs, {}, function(selected) + if not selected then + return + end + local docDir = devdocs.GetDocDir(selected) + -- prettify the filename as you wish + Snacks.picker.files({ cwd = docDir }) + end) + end, + desc = "View Devdocs", + }, }, opts = { ensure_installed = { diff --git a/lua/devdocs/init.lua b/lua/devdocs/init.lua index 53325cf..6441b2f 100644 --- a/lua/devdocs/init.lua +++ b/lua/devdocs/init.lua @@ -6,6 +6,7 @@ local M = {} local D = require('devdocs.docs') local P = require('devdocs.picker') +local C = require('devdocs.constants') ---Download docs from ensure installed docs list ---@private @@ -142,6 +143,13 @@ M.GetDoc = function(doc) return D.GetDocFiles(doc) end +--- Get directory for a doc +--- @param doc doc +--- @return [string] | nil +M.GetDocDir = function(doc) + return C.DOCS_DIR .. '/' .. doc +end + --- Install Doc --- @async --- @param doc doc