A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/nvim-telescope/telescope-project.nvim below:

GitHub - nvim-telescope/telescope-project.nvim

An extension for telescope.nvim that allows you to switch between projects.

{
    'nvim-telescope/telescope-project.nvim',
    dependencies = {
        'nvim-telescope/telescope.nvim',
    },
}
use {
    'nvim-telescope/telescope-project.nvim',
    requires = {
        'nvim-telescope/telescope.nvim',
    },
}

You can set up the extension by adding the following to your config:

require'telescope'.load_extension('project')

You may skip explicitly loading extensions (they will then be lazy-loaded), but tab completions will not be available right away.

The projects picker:

require'telescope'.extensions.project.project{}
Default mappings (normal mode): Key Description d delete currently selected project r rename currently selected project c create a project* s search inside files within your project b browse inside files within your project w change to the selected project's directory without opening it R find a recently opened file within your project f find a file within your project (same as <CR>) o change current cd scope Default mappings (insert mode): Key Description <c-d> delete currently selected project <c-v> rename currently selected project <c-a> create a project* <c-s> search inside files within your project <c-b> browse inside files within your project <c-l> change to the selected project's directory without opening it <c-r> find a recently opened file within your project <c-f> find a file within your project (same as <CR>) <c-o> change current cd scope

* defaults to your git root if used inside a git project, otherwise, it will use your current working directory

Example key map config:

vim.api.nvim_set_keymap(
        'n',
        '<C-p>',
        ":lua require'telescope'.extensions.project.project{}<CR>",
        {noremap = true, silent = true}
)
Keys Description Options display_type Show the title and the path of the project 'full' or 'minimal' (default) hide_workspace Hide the workspace of the project true or false (default)

Options can be added when requiring telescope-project, as shown below:

lua require'telescope'.extensions.project.project{ display_type = 'full' }
Available setup settings: Keys Description Options base_dirs Array of project base directory configurations table (default: nil) ignore_missing_dirs Don't show an error if base dirs are missing bool (default: false) hidden_files Show hidden files in selected project bool (default: false) order_by Order projects by asc, desc, recent string (default: recent) sync_with_nvim_tree Sync projects with nvim tree plugin bool (default: false) search_by Telescope finder search by field (title/path) string or table (default: title). Can also be a table {"title", "path"} to search by both title and path on_project_selected Custom handler when project is selected function(prompt_bufnr) (default: find project files) cd_scope Array of cd scopes: tab, window, global table (default: {"tab", "window"}) mappings Sets the mappings inside the telescope view table (default: the mappings described bellow)

Setup settings can be added when requiring telescope, as shown below:

require('telescope').setup {
  local project_actions = require("telescope._extensions.project.actions")
  extensions = {
    project = {
      base_dirs = {
        '~/dev/src',
        {'~/dev/src2'},
        {'~/dev/src3', max_depth = 4},
        {path = '~/dev/src4'},
        {path = '~/dev/src5', max_depth = 2},
      },
      ignore_missing_dirs = true, -- default: false
      hidden_files = true, -- default: false
      theme = "dropdown",
      order_by = "asc",
      search_by = "title",
      sync_with_nvim_tree = true, -- default false
      -- default for on_project_selected = find project files
      on_project_selected = function(prompt_bufnr)
        -- Do anything you want in here. For example:
        project_actions.change_working_directory(prompt_bufnr, false)
        require("harpoon.ui").nav_file(1)
      end,
      mappings = {
        n = {
          ['d'] = project_actions.delete_project,
          ['r'] = project_actions.rename_project,
          ['c'] = project_actions.add_project,
          ['C'] = project_actions.add_project_cwd,
          ['f'] = project_actions.find_project_files,
          ['b'] = project_actions.browse_project_files,
          ['s'] = project_actions.search_in_project_files,
          ['R'] = project_actions.recent_project_files,
          ['w'] = project_actions.change_working_directory,
          ['o'] = project_actions.next_cd_scope,
        },
        i = {
          ['<c-d>'] = project_actions.delete_project,
          ['<c-v>'] = project_actions.rename_project,
          ['<c-a>'] = project_actions.add_project,
          ['<c-A>'] = project_actions.add_project_cwd,
          ['<c-f>'] = project_actions.find_project_files,
          ['<c-b>'] = project_actions.browse_project_files,
          ['<c-s>'] = project_actions.search_in_project_files,
          ['<c-r>'] = project_actions.recent_project_files,
          ['<c-l>'] = project_actions.change_working_directory,
          ['<c-o>'] = project_actions.next_cd_scope,
        }
      }
    }
  }
}

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4