summaryrefslogtreecommitdiff
path: root/media/demo_script.lua
diff options
context:
space:
mode:
Diffstat (limited to 'media/demo_script.lua')
-rw-r--r--media/demo_script.lua47
1 files changed, 47 insertions, 0 deletions
diff --git a/media/demo_script.lua b/media/demo_script.lua
new file mode 100644
index 0000000..8074523
--- /dev/null
+++ b/media/demo_script.lua
@@ -0,0 +1,47 @@
+local finders = require('telescope.finders')
+local previewers = require('telescope.previewers')
+local pickers = require('telescope.pickers')
+local sorters = require('telescope.sorters')
+
+-- Get all the items from v:oldfiles that are valid files
+local valid_oldfiles = vim.tbl_filter(function(val)
+ return 0 ~= vim.fn.filereadable(val)
+end, vim.v.oldfiles)
+
+-- print(vim.inspect(valid_oldfiles))
+-- => {
+-- "/home/tj/blah.txt",
+-- "/home/tj/another_dir/file.py",
+-- ...
+-- }
+
+-- Create a finder from a Lua list.
+local oldfiles_finder = finders.new_table(valid_oldfiles)
+
+-- Get a pre-defined sorter.
+-- Sorters return a "score" for each "Entry" found by a finder.
+--
+-- This sorter is optimized to best find files in a fuzzy manner.
+local oldfiles_sorter = sorters.get_fuzzy_file()
+
+-- Get a pre-defined previewer.
+-- Previewers take the currently selected entry,
+-- and put a preview of it in a floating window
+local oldfiles_previewer = previewers.cat
+
+-- Create and run a Picker.
+-- Pickers are the main entry point to telescope.
+-- They manage the interactions between:
+-- Finder,
+-- Sorter,
+-- Previewer
+--
+-- And provide the UI for the user.
+pickers.new {
+ prompt = 'Oldfiles',
+ finder = oldfiles_finder,
+ sorter = oldfiles_sorter,
+ previewer = oldfiles_previewer,
+}:find()
+
+