Commit Graph

113 Commits

Author SHA1 Message Date
Luke Kershaw
be600b5421 feat: more prompt position strategies (#1280)
* feat: allow `prompt_position` for `vertical` layout strategy

* feat: allow `prompt_position` for `bottom_pane` layout strategy

* stylua

* [docgen] Update doc/telescope.txt
skip-checks: true

* refactor: switch to `string.format`

* stylua

* feat: allow `prompt_position` for `center` layout strategy

* feat: handle user defined `prompt_position` within themes

* [docgen] Update doc/telescope.txt
skip-checks: true

* fix: tweak `center` layout

- ensure `prompt` title is visible when `prompt_position="bottom"`

* fix: refactor `center` tweak

- move title to bottom of picker when `prompt_position="bottom"`

* fix: tweak `bottom_pane` layout

* stylua

Co-authored-by: Github Actions <actions@github>
2021-10-04 21:16:58 +02:00
fdschmidt93
a6c7498bdc feat: filetype_hook & improved docs; fix preview partial override (#1273) 2021-09-27 15:24:35 +02:00
tami5
60660334c7 feat(defaults): enable customization of path_display.truncate (#1264)
followup to https://github.com/nvim-telescope/telescope.nvim/pull/1254
and implementation of
https://github.com/nvim-telescope/telescope.nvim/pull/1254#issuecomment-922527270
2021-09-20 12:52:59 +03:00
Luke Kershaw
f0db7d3a59 feat: truncate option for path_display (#1254) 2021-09-19 20:38:00 +02:00
Luke Kershaw
37c9ab6688 feat: layout_strategies refactor (#1039)
* wip: 2021-07-22 15:00 BST

* wip: `horizontal` refactored

* wip: `center` refactored

* wip: `cursor` and `vertical` refactored

* wip: `current_buffer` refactor

- also changed `layout_config_defaults` as they gave errors when using `current_buffer`

* wip: `bottom_pane` refactor

* [docgen] Update doc/telescope.txt
skip-checks: true

* fix: put accidentally remove config option back

* [docgen] Update doc/telescope.txt
skip-checks: true

* wip: standardise `height` calculation for `center` and `bottom_pane`

* wip: improve comments

* [docgen] Update doc/telescope.txt
skip-checks: true

* stylua

- also fix a merge mistake

* [docgen] Update doc/telescope.txt
skip-checks: true

* fix: attempt to fix bad merge

* refactor: remove unused entry in `borderchars` table

- also fix some typos

* wip: tweak padding for `bottom_pane`

* wip: add `tabline` checks to `bottom_pane`

- also tweaked position so that `statusline` is not covered when borders are enabled

* stylua

* refactor: factor out size capping function

* [docgen] Update doc/telescope.txt
skip-checks: true

* fix: adjust tests that relied on height being number of results

* fix: forgot variable in calc_size_and_spacing

* fix: maybe this fixes these tests?

* test: try other plenary branch for ci

* test: switch back to main plenary branch for ci

* fix: actually define `max_results` in the test

* fix: final tweaks for edge cases

Co-authored-by: Github Actions <actions@github>
2021-09-19 09:30:25 +01:00
fdschmidt93
7c5b846f6f feat: skip/timeout preview if file cannot be easily previewed (#1231)
* For full configuration, see `:h telescope.defaults.preview`
* Unblocks previewer on binaries, too large files, and files that take too long to read
* Allows toggling treesitter highlighting for buffer_previewer
* Allows to globally opt out of previewer
2021-09-16 23:01:40 +02:00
Simon Hauser
5131df7df1 docs: rewrite readme and add missing config values + builtin opts 2021-09-16 11:12:12 +02:00
qualious
1d17cc4abc feat: smart path (#914)
path_display = { "smart" }

Co-authored-by: Deniz <deniz@admentum.se>
Co-authored-by: Simon Hauser <Simon-Hauser@outlook.de>
2021-09-12 21:14:00 +02:00
fdschmidt93
5d37c3ea08 feat: allow caching and resuming picker (#1051)
* expose `cache_picker` in telescope.setup to configure caching, see `:h telescope.defaults.cache_picker`
* add builtin.resume and builtin.pickers picker
2021-09-01 18:17:18 +02:00
TJ DeVries
ea5ab8f7c4 feat: Use nvim_buf_set_extmark right_align to do the magic for us (#1138) 2021-08-20 13:35:21 -04:00
TJ DeVries
a97af306c4 feat(performance): Major performance improvements using async v2 from @oberblastmeister (#987)
* start: Working w/ async jobs

* short circuit to using bad finder if you pass writer.
2021-08-20 11:11:24 -04:00
Simon Hauser
79644ab677 chore: use stylua for formatting (#1040)
* chore: stylua job and config

* reformat with stylua
2021-07-23 11:42:37 -04:00
Corentin Brunel
b13306e5cc feat: add cursor layout (#878)
* Add basic implementation of "cursor" layout strategy

* Update cursor layout strategy to properly follow cursor

* feat(cursor_layout): handle previewer

* Refactor cursor layout code

* Add cursor theme

* Update readme

* Improve cursor theme and layout documentation

* [docgen] Update doc/telescope.txt
skip-checks: true

* Remove trailing whitespace

* Fix issues related with neovim and plugin api changes

* [docgen] Update doc/telescope.txt
skip-checks: true

* Allow preview width to be configured

* [docgen] Update doc/telescope.txt
skip-checks: true

Co-authored-by: Github Actions <actions@github>
Co-authored-by: cbrunel <cbrunel@sogescom.local>
2021-07-16 19:17:21 +01:00
Luke Kershaw
1866265fea feat: Add length option for shorten_path (#886)
* feat: add `shorten_len` option for path shortening

- adds option to configure the length of shortened parts of filenames
- only affects paths when "shorten" is in `path_display`

* chore: revert rebase for `path.lua` to 876bed9

* refactor: replace `shorten_len` with the `shorten` key in `path_display`

- also deprecates `utils.path_shorten` and passes straight to `plenary`s `Path:shorten`

* feat: allow `path_display` to handle table keys, as well as strings
2021-07-16 17:41:39 +01:00
Nazeeh ElDirghami
138697980b feat: Add ability to have a user defined function to format the path display (#1000) 2021-07-16 17:20:25 +02:00
Simon Hauser
d176dd80da hotfix: just only false to disable
I knew i will break it with my last commit
2021-07-09 21:00:00 +02:00
Simon Hauser
3699605627 feat: cycle prompt history (#521)
history is enabled on default but cycle_history_next and cycle_history_prev is not mapped yet

Example:
require('telescope').setup {
  defaults = {
    mappings = {
      i = {
        ["<C-Down>"] = require('telescope.actions').cycle_history_next,
        ["<C-Up>"] = require('telescope.actions').cycle_history_prev,
      }
    }
  }
}

For more information :help telescope.defaults.history

big thanks to clason and all other testers :)
2021-07-09 20:45:29 +02:00
caojoshua
d5a8e48aa6 Consistent filepath display and code cleanup. (#839)
BREAKING CHANGE: see :help telescope.changelog-839 for more information

Co-authored-by: Simon Hauser <Simon-Hauser@outlook.de>
2021-07-08 10:30:44 +02:00
Tom
c5a6ed16e2 feat: selection_strategy closest (#885)
* Added closest selection_strategy to use default_selection_index initially but prefer highest ranked match when prompt not empty

* Updated supporting documentation to include selection_strategy
2021-07-02 12:42:25 +02:00
Luke Kershaw
50001d4965 fix: table number option extend (#947)
* fix: prevent error when overriding tables with numbers

Fixes #944

- refactor `config.smarter_depth_2_extend`

- use `config.smarter_depth_2_extend` for setting `layout_config` in `Picker:new`

* test: check that can override a table with a number for layout configuration
2021-07-02 08:50:55 +02:00
TJ DeVries
5a53ec5c2f feat: Consistent and sensible layout_config (#922)
* feat: Consistent and sensible layout_config

* [docgen] Update doc/telescope.txt
skip-checks: true

* [WIP]: Thu 17 Jun 2021 03:36:44 PM EDT

* [WIP]: Thu 17 Jun 2021 03:38:11 PM EDT

* layout_default -> layout_defaults

* remove options from bug repot

* Conni2461 suggestions: part 1

* [docgen] Update doc/telescope.txt
skip-checks: true

* Conni2461 suggestions: part 2

* [docgen] Update doc/telescope.txt
skip-checks: true

* Linting

* Improve deprecation checks

- Move `layout_defaults` handling to `deprecated.lua`
- Check for "layout keys" outside of `layout_config` on `setup`

* fixup: Just add a few more words

Co-authored-by: Luke Kershaw <35707277+l-kershaw@users.noreply.github.com>
Co-authored-by: Github Actions <actions@github>
2021-07-01 05:41:58 -04:00
Simon Hauser
6ac5ee0854 feat: cycle previewers with commit and bcommit already using it (#528)
- new git previewers
- jump to line in bcommit previewer
- vimdiff for bcommits
- dynamic preview window titles
- more previewers documentation

Cycle previewers are not mapped yet. So you need to setup yourself:
```lua
require('telescope').setup {
  defaults = {
    mappings = {
      i = {
        ["<C-s>"] = actions.cycle_previewers_next,
        ["<C-a>"] = actions.cycle_previewers_prev,
      },
    },
  }
}
```

Co-authored-by: Thore Strassburg <thore@weilbier.net>
2021-06-14 21:50:46 +02:00
JINNOUCHI Yasushi
0c1bc129da chore: use plenary.strings and remove strings functions from utils (#690)
Co-authored-by: Simon Hauser <Simon-Hauser@outlook.de>
2021-06-14 20:47:33 +02:00
Simon Hauser
618e0e6075 feat: set defaults for each picker in telescope setup (#883)
This allows easier picker configuration for example:

```lua
require("telescope").setup {
  pickers = {
    buffers = {
      show_all_buffers = true,
      sort_lastused = true,
      theme = "dropdown",
      previewer = false,
      mappings = {
        i = {
          ["<c-q>"] = "smart_send_to_qflist",
        }
      }
    }
  }
}
```

This configuration will be applied when running `:Telescope buffers`
2021-06-09 19:51:03 +02:00
Simon Hauser
aefc831735 fix: no longer leaking one buffer previewer in some occasions (#664)
* fix: stop leaking last preview buffer
* fix: formatting for docs
* fix: async check if file is dir or not and
  - fix for in_fast_event when overriding file_maker
* fix: filtering for space in keymaps and fzy
* fix: show correct result numbers when using file_ignore_patterns
* Handle early close. Caused because we actually cleaning up buffers now
* cleanup
* [docgen] Update doc/telescope.txt
2021-03-30 12:32:18 +02:00
fdschmidt93
db7615578b feat: lsp diagnostics and prefiltering by entry attribute (#543)
prefiltering for lsp_document_symbols and lsp_workspace_symbols.
example: type `:var:` to show all vars
2021-03-03 22:33:03 +01:00
Simon Hauser
3faca0802f docs: start documenting previewers (#574)
Co-authored-by: Muhammed Zakir <MuhammedZakir@users.noreply.github.com>
2021-03-03 18:14:46 +01:00
Simon Hauser
ca92ec1a83 fix: a lot of small things and adds more customization for caret (#554)
Attention:
prompt_prefix will no longer add a space at the end. So if you still want a space at the end make sure your configuration has one.
The default should not be changed. So if you haven't copied prompt_prefix in your config this doesn't affect you.

Feat:
- prompt prefix does no longer always end with space
- selection_caret configurable. Default: `> `
- result_prefix configurable. Default: `  `
- more actions for git_branches
  - <c-t> does track the branch
  - <c-r> does rebase branch
  - also added delete branch action but not configured. See readme on how to do that

Fixes:
- fix docgen ci
- Better error for lsp_workspace_symbols
- better formatting for CONTRIBUTING.md
- move from systemlist to plenary.job
- git branch now supports checkout on remote branches
2021-02-27 16:26:25 +01:00
TJ DeVries
55ab5c77a5 feat: Add vim docs & generators (#370)
* feat: Add vim docs & generators

* example of what we could start to do

* Docgen CI job

* wip

* incremental updates. soon good validation

* [Actions] Generate Documentation
skip-checks: true

* pretty cool now

* [Actions] Generate Documentation
skip-checks: true

* make sure telescope is loaded first

* Add updates. Maybe this will not delete now?

* Add defaults tags as well

* 😄

Co-authored-by: Simon Hauser <Simon-Hauser@outlook.de>
Co-authored-by: Github Actions <actions@github>
2021-02-24 21:44:51 -05:00
Simon Hauser
b5051eeb01 feat: make buffer previewer default and deprecate bat previewer (#420)
To revert back to bat previewers put this into your config:

file_previewer = require'telescope.previewers'.cat.new,
grep_previewer = require'telescope.previewers'.vimgrep.new,
qflist_previewer = require'telescope.previewers'.qflist.new,
2021-02-24 03:47:22 +01:00
Simon Hauser
4dd35ef0e1 feat: file browser & refresh interface (#290)
and more picker api stuff for sunjon. refresh is implemented for file_browser and git_status
2021-02-23 22:10:19 +01:00
TJ DeVries
d7c02e3b52 feat: Action improvements (#472)
* feat: replace_map

* feat: Add action_set and action_state

* fix: Move all actions.get_ to action_state.get_

* fix: replace all internal references of _goto_file_selection_edit

* feat: add some docs

* fix: lint

* feat: actions.select

* remove mentions and usage of goto_file_selection APIs

* feat: special case attach_mappings to be overridable and defaultable

* Having goto_file_selection mappings will cause a error

as well as replacing deprecated goto_file_selection methodes

For config and replacing use this instead:
- actions.select_default
- actions.select_horizonal
- actions.select_vertical
- actions.select_tab

Only replacing:
- actions.set.edit -- for replacing all select functions

* adds actions.state.select_key_to_edit_key

Co-authored-by: Simon Hauser <Simon-Hauser@outlook.de>
2021-02-22 11:30:57 -05:00
TJ DeVries
5f1d16acf6 nit: Abstract some functions (#498) 2021-02-04 20:56:05 -05:00
Simon Hauser
9e76b1613a fix: remove env workaround for term_previewer (#482)
Also fixes #484
2021-02-01 14:50:01 +01:00
anott03
5995a8be8f Undo #465 (#469)
We have broke all extension that do some sort of goto_file_selection:replace

Problem described here: https://github.com/nvim-telescope/telescope.nvim/pull/465#issuecomment-767831897
Possible solution: https://github.com/nvim-telescope/telescope.nvim/pull/465#issuecomment-767808213
2021-01-27 17:22:11 +01:00
anott03
ccbb7f5638 fix: move to actions.select as default action (#465) 2021-01-25 19:20:01 +01:00
wordhou
7e241aa0a4 feat: Add option to set initial_mode (#442) 2021-01-17 23:09:23 -05:00
TJ DeVries
8783bea06e feat: quickfix (#293)
* feat: quickfix (not implemented)

* [WIP]: Wed 09 Dec 2020 11:11:30 PM EST

* somewhat working linked list impl

* getting closer

* might be working

* might be working for real

* works and implemented basic example

* dont forget to close prompt

* fix descending and add more tests

* test fixes

* fix test

* more logging

* Fix some more tests

* Fix logging messing up tests

* fix: lint

* fix: multi select stuffs
2021-01-11 13:29:37 -05:00
Simon Hauser
1d40ab5ccd feat: All buffer previewers are now async and more config options (#354)
Configure preview window with:
autocmd User TelescopePreviewerLoaded setlocal wrap
autocmd User TelescopePreviewerLoaded setlocal number

file_maker example: Use regex highlighting for certain filetype like `*min.js` because they slow
down things with treesitter highlighter. Just a snippet for tests. We will do an extension :)

local previewers = require('telescope.previewers')
local putils = require('telescope.previewers.utils')
local pfiletype = require('plenary.filetype')

local _bad = { '.*%.min%.js' }
local bad_files = function(filepath)
  for _, v in ipairs(_bad) do
    if filepath:match(v) then
      return true
    end
  end

  return false
end

local new_maker = function(filepath, bufnr, bufname, use_ft_detect, callback)
  if use_ft_detect == nil then use_ft_detect = true end

  if bad_files(filepath) then
    previewers.buffer_previewer_maker(filepath, bufnr, bufname, false, callback)
    local ft = pfiletype.detect(filepath)
    putils.regex_highlighter(bufnr, ft)
  else
    previewers.buffer_previewer_maker(filepath, bufnr, bufname, use_ft_detect, callback)
  end
end

require('telescope').setup {
  defaults = {
    buffer_previewer_maker = new_maker,
  }
}
2020-12-29 21:05:59 +01:00
Simon Hauser
141dc6d55e ci: Add luacheck ci job (#317)
* Add luacheck ci job

* Fix most of the linting issues

* fixup: lint

Co-authored-by: TJ DeVries <devries.timothyj@gmail.com>
2020-12-09 15:46:41 -05:00
Simon Hauser
c276db06e2 Feat: Opt in vim buffers for previewers (#298)
Enable with:
require('telescope').setup {
  defaults = {
    file_previewer = previewers.vim_buffer_cat.new,
    grep_previewer = previewers.vim_buffer_vimgrep.new,
    qflist_previewer = previewers.vim_buffer_qflist.new,
  }
}
2020-12-09 16:58:22 +01:00
Simon Hauser
874139ee0b Various previewer fixes (#260)
- Set env vars for previewer with set_env({ key = value } fix #228)
- Set pager for git previewes (default is GIT_PAGER=less so users can scroll see #253)
- Use less for people who don't have bat but less installed
- Reset less env to only '-RS' because '-X' will break scrolling(fix #253, thanks @eth3lbert)
- Scrolling for buffer previewer(thanks @tami5 for helping)
  - Also new function to create buffer previewers (which has scrolling by default). Used for tags and help_tags previewer.
- Add new setting set_env to readme
2020-11-22 10:57:31 +01:00
TJ DeVries
a37e4699c4 feat: Closes #205 2020-10-30 18:31:06 -04:00
TJ DeVries
113a516c63 feat: Add ability to turn off devicon colors 2020-10-25 08:19:09 -04:00
TJ DeVries
f95fe484f7 feat: Add ability to configure default sorters 2020-10-19 22:46:36 -04:00
Alvaro Muñoz
d493a76058 refactor: prompt->prompt_title (#169)
* refactor: prompt->prompt_title ; prompt_prefix->prompt_text

* undo prompt_prefix rename

* undo prompt_prefix rename
2020-10-17 17:26:14 -04:00
TJ DeVries
fe63e4f1de fix: Add 'use_less' config value 2020-10-09 00:00:57 -04:00
TJ DeVries
3cf3acc4d5 feat: Add scroll_strategy = 'cycle' 2020-10-08 22:47:22 -04:00
TJ DeVries
282e328d46 fix: Allow people to still override ALL the mappings 2020-10-08 21:42:50 -04:00
TJ DeVries
c2c4626c3d feat: Add more easily customizable mappings.
Closes: #131
2020-10-08 21:39:43 -04:00