Awesome Open Source
Awesome Open Source

coc-explorer

Explorer extension for coc.nvim

Note: Still under development, maybe has some breaking changes.

Build Status

Screenshot

image

Requirements

>= vim 8.1.1418 or >= neovim 0.3.1

Usage

  1. Install by coc.nvim command:
    :CocInstall coc-explorer
    
  2. Configuration custom vim mapping
    :nmap <space>e :CocCommand explorer<CR>
    
  3. Open explorer
    <space>e
    
  4. Press ? to show mappings help

More at Quickstart

Feature

  • [x] Buffer source
    • [x] Highlight visible buffers in real time
  • [x] File tree source
    • [x] Basic actions
      • [x] Open file in select / vsplit / tab explorer.openAction.strategy options:
        • select: Open action use selection UI
        • vsplit: Open action use vsplit
        • split: Open action use split
        • tab: Open action use tab
        • previousBuffer: Open action use last used buffer
        • previousWindow: Open action use last used window
        • sourceWindow: Open action use the window where explorer opened
      • [x] Selection
      • [x] Cut / Copy / Paste
      • [x] Delete action use trash by default
      • [x] Other actions, press ? in explorer to check out the all actions
    • [x] Git status
    • [x] Automatically reveal the current file
    • [x] Icons, use nerdfont
    • [x] Search files by Coc-list
    • [x] Preview file attributes by floating window
    • [ ] LSP
      • [x] diagnostic
      • [ ] file rename (won't support, use watchman)
    • [ ] Exrename, like defx
    • [ ] Archive file (use lsar / unar)
    • [ ] SSH
  • [x] Bookmark source (require coc-bookmark)
  • [ ] Git source
    • [ ] Git actions
  • [x] Show help

Command

:CocCommand explorer [options] [root-uri]

User events

  • CocExplorerOpenPre: triggered before open explorer
  • CocExplorerOpenPost: triggered after open explorer
  • CocExplorerQuitPre: triggered before quit explorer
  • CocExplorerQuitPost: triggered after quit explorer

Example

:CocCommand explorer
    \ --toggle
    \ --sources=buffer+,file+
    \ /root/path

Reveal to current buffer for closest coc-explorer

nmap <Leader>er :call CocAction('runCommand', 'explorer.doAction', 'closest', ['reveal:0'], [['relative', 0, 'file']])<CR>

Presets

let g:coc_explorer_global_presets = {
\   '.vim': {
\     'root-uri': '~/.vim',
\   },
\   'cocConfig': {
\      'root-uri': '~/.config/coc',
\   },
\   'tab': {
\     'position': 'tab',
\     'quit-on-open': v:true,
\   },
\   'floating': {
\     'position': 'floating',
\     'open-action-strategy': 'sourceWindow',
\   },
\   'floatingTop': {
\     'position': 'floating',
\     'floating-position': 'center-top',
\     'open-action-strategy': 'sourceWindow',
\   },
\   'floatingLeftside': {
\     'position': 'floating',
\     'floating-position': 'left-center',
\     'floating-width': 50,
\     'open-action-strategy': 'sourceWindow',
\   },
\   'floatingRightside': {
\     'position': 'floating',
\     'floating-position': 'right-center',
\     'floating-width': 50,
\     'open-action-strategy': 'sourceWindow',
\   },
\   'simplify': {
\     'file-child-template': '[selection | clip | 1] [indent][icon | 1] [filename omitCenter 1]'
\   },
\   'buffer': {
\     'sources': [{'name': 'buffer', 'expand': v:true}]
\   },
\ }

" Use preset argument to open it
nmap <space>ed :CocCommand explorer --preset .vim<CR>
nmap <space>ef :CocCommand explorer --preset floating<CR>
nmap <space>ec :CocCommand explorer --preset cocConfig<CR>
nmap <space>eb :CocCommand explorer --preset buffer<CR>

" List all presets
nmap <space>el :CocList explPresets

Options

[root-uri]

Explorer root, default:

  • getcwd() when buftype is nofile
  • workspace.rootPath

--preset <name>

Open explorer use presets

--toggle | --no-toggle

Close the explorer if it exists, default: --toggle

--focus | --no-focus

Focus to explorer when opened, default: --focus

--open-action-strategy <strategy>

Strategy for open action, types: select | vsplit | split | tab | previousBuffer | previousWindow | sourceWindow, default: select

--quit-on-open | --no-quit-on-open

quit explorer when open action, default: --no-quit-on-open

--sources <sources>

Explorer sources, example: buffer+,file+, default: buffer-,file+

              expand
      collapsed ā”‚
          ā†“     ā†“
    buffer-,file+
    ā””ā”€ā”€ā”¬ā”€ā”˜  ā””ā”€ā”¬ā”˜
buffer source ā”‚
          file source

--position <position>

Explorer position, supported position: left, right, tab, floating, default: left

--width <number>

Width of Explorer window for open in left or right side, default: 40

--content-width <number>

Content width, default: 0

--content-width-type <type>

Type of content width, types: win-width, vim-width, , default: vim-width

--floating-position <position>

Explorer position for floating window, positions:

  • left-center
  • center
  • right-center
  • center-top
  • <number for left>,<number for top>

default: center

--floating-width <number>

Width of Explorer window when position is floating, use negative value or zero to as width - value, default: 0

--floating-height <number>

Height of Explorer window when position is floating, use negative value or zero to as height - value, default: 0

--floating-content-width <number>

Width of content when position is floating, use negative value or zero to as width - value, default: 0

--buffer-root-template <template>

Template for root node of buffer source

Columns:

  • icon
  • hidden
  • title

default: [icon] [title] [hidden & 1]

--buffer-child-template <template>

Template for child node of buffer source

Columns:

  • selection
  • name
  • bufname
  • modified
  • bufnr
  • readonly
  • fullpath

default: [selection | 1] [bufnr] [name][modified][readonly] [fullpath]

--buffer-child-labeling-template <template>

Labeling template for child node of buffer source, use for preview when previewAction is labeling

Columns: same with --buffer-child-template

default: [name][bufname][fullpath][modified][readonly]

--file-root-template <template>

Template for root node of file source

Columns:

  • icon
  • hidden
  • title
  • root
  • fullpath

default: [icon] [title] [hidden & 1][root] [fullpath]

--file-root-labeling-template <template>

Labeling template for root node of file source, use for preview when previewAction is labeling

Columns: same with --file-root-template

default: [fullpath]

--file-child-template <template>

Template for child node file source

Columns:

  • git
  • selection
  • icon
  • filename
  • linkIcon
  • link
  • fullpath
  • indent
  • clip
  • size
  • readonly
  • modified
  • timeModified
  • timeCreated
  • timeAccessed
  • diagnosticError
  • diagnosticWarning

default: [git | 2] [selection | clip | 1] [indent][icon | 1] [diagnosticError & 1][filename omitCenter 1][modified][readonly] [linkIcon & 1][link growRight 1 omitCenter 5][size]

--file-child-labeling-template <template>

Labeling template for child node of file source, use for preview when previewAction is labeling

Columns: same with --file-child-template

default: [fullpath][link][diagnosticWarning][diagnosticError][size][timeAccessed][timeModified][timeCreated][readonly][modified]

--bookmark-root-template <template>

Template for root node of bookmark source

Columns:

  • icon
  • hidden
  • title

default: [icon] [title] [hidden & 1]

--bookmark-child-template <template>

Template for child node of bookmark source

Columns:

  • selection
  • position
  • filename
  • fullpath
  • line
  • annotation

default: [selection | 1] [filename] [position]

--bookmark-child-labeling-template <template>

Labeling template for child node of bookmark source, use for preview when previewAction is labeling

Columns: same with --bookmark-child-template

default: [filename][fullpath][position][line][annotation]

--reveal <filepath>

Explorer will expand to this filepath, default: current buffer

Template grammar

Example:

[git | 2] [selection | clip | 1] [diagnosticError & 1][filename growRight 1 omitCenter 5]
  • [git]
    • Display git.
  • [git | 2]
    • If git is not empty, display git, otherwise display 2 spaces.
  • [selection | clip | 1]
    • Checking selection and clip in turn, if one is not empty, display it, otherwise display 1 spaces.
  • [diagnosticError & 1]
    • If diagnosticError is empty, display nothing. otherwise display diagnosticError and 1 space.
  • [filename growRight 1 omitCenter 5]
    • Flexible to display filename, grow right column volume is 1, omit center volume is 5

Grammar:

                      block
         ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”“ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”“ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā” ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”“ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
[selection | clip | 1] [filename growRight 1 omitCenter 5]
                      ā†‘
                 plain string

            column
     ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”“ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
     ā”‚                     ā”‚   volume of modifier
     ā”‚         ā”Œā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”‚ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”“ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
 ā”Œā”€ā”€ā”€ā”“ā”€ā”€ā”€ā”   ā”Œā”€ā”“ā”   ā†“   ā”Œā”€ā”€ā”“ā”€ā”€ā”€ā”           ā†“            ā†“
[selection | clip | 1] [filename growRight 1 omitCenter 5]
           ā†‘      ā†‘              ā””ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”˜   ā””ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”˜
           ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”“ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”“ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
                           modifier

Custom mappings example

You can use ? to view all actions of current source

// coc-settings.json
{
  "explorer.keyMappings.global": {
    "i": false, // cancel default mapkey

    "*": "toggleSelection",
    "<tab>": "actionMenu",

    "gk": ["wait", "expandablePrev"],
    "gj": ["wait", "expandableNext"],
    "h": ["wait", "collapse"],
    "l": ["wait", "expandable?", "expand", "open"],
    "J": ["wait", "toggleSelection", "normal:j"],
    "K": ["wait", "toggleSelection", "normal:k"],
    "gl": ["wait", "expand:recursive"],
    "gh": ["wait", "collapse:recursive"],
    "<2-LeftMouse>": [
      "expandable?",
      ["expanded?", "collapse", "expand"],
      "open"
    ],
    "o": ["wait", "expanded?", "collapse", "expand"],
    "<cr>": ["wait", "expandable?", "cd", "open"],
    "e": "open",
    "s": "open:split",
    "E": "open:vsplit",
    "t": "open:tab",
    "<bs>": ["wait", "gotoParent"],
    "gs": ["wait", "reveal:select"],
    "il": "preview:labeling",
    "ic": "preview:content",
    "Il": "previewOnHover:toggle:labeling",
    "Ic": "previewOnHover:toggle:content",
    "II": "previewOnHover:disable",

    "yp": "copyFilepath",
    "yn": "copyFilename",
    "yy": "copyFile",
    "dd": "cutFile",
    "p": "pasteFile",
    "df": "delete",
    "dF": "deleteForever",

    "a": "addFile",
    "A": "addDirectory",
    "r": "rename",

    "zh": "toggleHidden",
    "g<dot>": "toggleHidden",
    "R": "refresh",

    "?": "help",
    "q": "quit",
    "<esc>": "esc",
    "X": "systemExecute",
    "gd": "listDrive",

    "f": "search",
    "F": "searchRecursive",

    "gf": "gotoSource:file",
    "gb": "gotoSource:buffer",

    "[[": ["wait", "sourcePrev"],
    "]]": ["wait", "sourceNext"],

    "[i": ["wait", "indentPrev"],
    "]i": ["wait", "indentNext"],

    "[m": ["wait", "markPrev:modified"],
    "]m": ["wait", "markNext:modified"],

    "[d": ["wait", "markPrev:diagnosticError:diagnosticWarning"],
    "]d": ["wait", "markNext:diagnosticError:diagnosticWarning"],
    "[D": ["wait", "markPrev:diagnosticError"],
    "]D": ["wait", "markNext:diagnosticError"],

    "[c": ["wait", "markPrev:git"],
    "]c": ["wait", "markNext:git"],
    "<<": "gitStage",
    ">>": "gitUnstage"
  }
}

WIKI

https://github.com/weirongxu/coc-explorer/wiki

FAQ

https://github.com/weirongxu/coc-explorer/wiki/FAQ https://github.com/weirongxu/coc-explorer/issues?q=is%3Aissue+sort%3Aupdated-desc+label%3Aquestion

Example by Vim API and event hooks

function! s:explorer_cur_dir()
  let node_info = CocAction('runCommand', 'explorer.getNodeInfo', 0)
  return fnamemodify(node_info['fullpath'], ':h')
endfunction

function! s:exec_cur_dir(cmd)
  let dir = s:explorer_cur_dir()
  execute 'cd ' . dir
  execute a:cmd
endfunction

function! s:init_explorer()
  set winblend=10

  " Integration with other plugins

  " CocList
  nmap <buffer> <Leader>fg :call <SID>exec_cur_dir('CocList -I grep')<CR>
  nmap <buffer> <Leader>fG :call <SID>exec_cur_dir('CocList -I grep -regex')<CR>
  nmap <buffer> <C-p> :call <SID>exec_cur_dir('CocList files')<CR>

  " vim-floaterm
  nmap <buffer> <Leader>ft :call <SID>exec_cur_dir('FloatermNew --wintype=floating')<CR>
endfunction

function! s:enter_explorer()
  if &filetype == 'coc-explorer'
    " statusline
    setl statusline=coc-explorer
  endif
endfunction

augroup CocExplorerCustom
  autocmd!
  autocmd BufEnter * call <SID>enter_explorer()
  autocmd FileType coc-explorer call <SID>init_explorer()
augroup END

more API: https://github.com/weirongxu/coc-explorer/wiki/Vim-API

Settings

Commands

explorer: Open explorer.

Configuration

Definitions

MappingActionExp: MappingActionExp. Type:
MappingAction | MappingActionExp[]
MappingAction: MappingAction. Type:
string | {
    name?: string;
    args?: string[];
    [k: string]: unknown;
}
PreviewActionStrategy: PreviewActionStrategy. Type:
'labeling' | 'content'
Properties
explorer.presets: Explorer presets. Type:
{
    [k: string]: {
        'root-uri'?: string;
        /**
         * Close the explorer if it exists
         */
        toggle?: boolean;
        /**
         * Focus to explorer when opened
         */
        focus?: boolean;
        /**
         * Strategy for open action
         */
        'open-action-strategy'?: 'select' | 'split' | 'split.plain' | 'split.intelligent' | 'vsplit' | 'vsplit.plain' | 'vsplit.intelligent' | 'tab' | 'previousBuffer' | 'previousWindow' | 'sourceWindow';
        /**
         * quit explorer when open action
         */
        'quit-on-open'?: boolean;
        reveal?: string;
        /**
         * Explorer sources
         */
        sources?: {
            /**
             * Explorer source name
             */
            name: 'bookmark' | 'buffer' | 'file';
            /**
             * Whether to expand it by default
             */
            expand: boolean;
            [k: string]: unknown;
        }[];
        /**
         * Explorer position
         */
        position?: 'left' | 'right' | 'tab' | 'floating';
        /**
         * Width of explorer window for open in left or right side
         */
        width?: number;
        /**
         * Content width, use negative value or zero to as `width - value`
         */
        'content-width'?: number;
        /**
         * Type of content width
         */
        'content-width-type'?: 'win-width' | 'vim-width';
        /**
         * Position of Explorer for floating window
         */
        'floating-position'?: ('left-center' | 'right-center' | 'center' | 'center-top') | [
            number,
            number
        ];
        /**
         * Width of explorer window when position is floating, use negative value or zero to as `width - value`
         */
        'floating-width'?: number;
        /**
         * Height of explorer window when position is floating, use negative value or zero to as `height - value`
         */
        'floating-height'?: number;
        /**
         * Width of content when position is floating, use negative value or zero to as `width - value`
         */
        'floating-content-width'?: number;
        /**
         * Template for root node of buffer source
         */
        'buffer-root-template'?: string;
        /**
         * Template for child node of buffer source
         */
        'buffer-child-template'?: string;
        /**
         * Labeling template for child node of buffer source, use for preview when previewAction is labeling
         */
        'buffer-child-labeling-template'?: string;
        /**
         * Template for root node of file source
         */
        'file-root-template'?: string;
        /**
         * Labeling template for root node of file source, use for preview when previewAction is labeling
         */
        'file-root-labeling-template'?: string;
        /**
         * Template for child node file source
         */
        'file-child-template'?: string;
        /**
         * Labeling template for child node of file source, use for preview when previewAction is labeling
         */
        'file-child-labeling-template'?: string;
        [k: string]: unknown;
    };
}
explorer.mouseMode: Mouse mode. Type:
'none' | 'singleclick' | 'doubleclick'
Default:
"doubleclick"
explorer.keyMappingMode: Keymapping mode. Type:
'none' | 'default'
Default:
"default"
explorer.keyMappings.global: Custom global key mappings. Type:
{
    [k: string]: MappingActionExp | false;
}
Default:
{}
explorer.keyMappings.vmap: Custom vmap key mappings. Type:
{
    [k: string]: MappingActionExp | false;
}
Default:
{}
explorer.keyMappings.sources: Custom key mappings in source. Type:
{
    [k: string]: {
        [k: string]: MappingActionExp | false;
    };
}
Default:
{}
explorer.toggle: Close the explorer if it exists. Type:
boolean
Default:
true
explorer.focus: Focus to explorer when opened. Type:
boolean
Default:
true
explorer.position: Explorer position. Type:
'left' | 'right' | 'tab' | 'floating'
Default:
"left"
explorer.width: Width of explorer window for open in left or right side. Type:
number
Default:
40
explorer.contentWidth: Content width, use negative value or zero to as `width - value`. Type:
number
Default:
0
explorer.contentWidthType: Type of content width. Type:
'win-width' | 'vim-width'
Default:
"vim-width"
explorer.floating.position: Position of Explorer for floating window. Type:
('left-center' | 'right-center' | 'center' | 'center-top') | [
    number,
    number
]
Default:
"center"
explorer.floating.width: Width of explorer window when position is floating, use negative value or zero to as `width - value`. Type:
number
Default:
-10
explorer.floating.height: Height of explorer window when position is floating, use negative value or zero to as `height - value`. Type:
number
Default:
-10
explorer.floating.contentWidth: Width of content when position is floating, use negative value or zero to as `width - value`. Type:
number
Default:
0
explorer.floating.border.enable: . Type:
boolean
Default:
true
explorer.floating.border.chars: Border chars for floating window, their order is top/right/bottom/left/topleft/topright/botright/botleft. Type:
string[]
Default:
[
  "ā”€",
  "ā”‚",
  "ā”€",
  "ā”‚",
  "ā”Œ",
  "ā”",
  "ā”˜",
  "ā””"
]
explorer.floating.border.title: . Type:
string
Default:
"coc-explorer"
explorer.floating.hideOnCocList: Hide floating window, when opening CocList. Type:
boolean
Default:
true
explorer.autoExpandMaxDepth: Automatically expand maximum depth of one time. Type:
number
Default:
20
explorer.autoExpandOptions: Automatically expand options. Type:
('recursive' | 'compact' | 'uncompact' | 'recursiveSingle')[]
Default:
[
  "compact",
  "uncompact"
]
explorer.autoCollapseOptions: Automatically collapse options. Type:
'recursive'[]
Default:
[
  "recursive"
]
explorer.activeMode: Render explorer when after open or save buffer. Type:
boolean
Default:
true
explorer.quitOnOpen: quit explorer when open action. Type:
boolean
Default:
false
explorer.previewAction.onHover: Open preview when hovering over on node. Type:
false | PreviewActionStrategy | [
    PreviewActionStrategy,
    number
]
Default:
false
explorer.openAction.strategy: Strategy for open action. Type:
'select' | 'split' | 'split.plain' | 'split.intelligent' | 'vsplit' | 'vsplit.plain' | 'vsplit.intelligent' | 'tab' | 'previousBuffer' | 'previousWindow' | 'sourceWindow'
Default:
"select"
explorer.openAction.select.filter: Filter windows for select strategy. Type:
OpenActionSelectFilter & {
    /**
     * Filter windows for select strategy in source
     */
    sources?: {
        [k: string]: OpenActionSelectFilter;
    };
    [k: string]: unknown;
}
Default:
{
  "buftypes": [
    "terminal"
  ],
  "filetypes": [
    "vista_kind",
    "qf"
  ],
  "floatingWindows": true,
  "sources": {
    "buffer": {
      "buftypes": []
    }
  }
}
explorer.openAction.for.directory: The action when you open a directory of file source. Type:
MappingAction | MappingActionExp[]
Default:
"cd"
explorer.openAction.relativePath: Use relative path when open a file with openAction. Type:
boolean
Default:
false
explorer.sources: Explorer sources. Type:
{
    /**
     * Explorer source name
     */
    name: 'bookmark' | 'buffer' | 'file';
    /**
     * Whether to expand it by default
     */
    expand: boolean;
    [k: string]: unknown;
}[]
Default:
[
  {
    "name": "bookmark",
    "expand": false
  },
  {
    "name": "buffer",
    "expand": false
  },
  {
    "name": "file",
    "expand": true
  }
]
explorer.enableFloatinput: Enable integrated with coc-floatinput. Type:
boolean
Default:
true
explorer.icon.enableNerdfont: Enable nerdfont. Type:
boolean
Default:
false
explorer.icon.customIcons: Custom icons and color highlights. Type:
{
    /**
     * Icons for extension groups
     */
    icons?: {
        [k: string]: unknown;
    };
    /**
     * File extension to icon group
     */
    extensions?: {
        [k: string]: unknown;
    };
    /**
     * Filename to icon group
     */
    filenames?: {
        [k: string]: unknown;
    };
    /**
     * Filename to icon group
     */
    dirnames?: {
        [k: string]: unknown;
    };
    /**
     * Pattern to icon group
     */
    patternMatches?: {
        [k: string]: unknown;
    };
    /**
     * Pattern to icon group
     */
    dirPatternMatches?: {
        [k: string]: unknown;
    };
    [k: string]: unknown;
}
Default:
{
  "icons": {},
  "extensions": {},
  "filenames": {},
  "dirnames": {},
  "patternMatches": {},
  "dirPatternMatches": {}
}
explorer.icon.enableVimDevicons: Enable use vim-devicons instead of built-in icon configuration. Type:
boolean
Default:
false
explorer.icon.expanded: Icon for expanded node. Type:
string
Default:
"-"
explorer.icon.collapsed: Icon for collapsed node. Type:
string
Default:
"+"
explorer.icon.selected: Selection selected chars for File source. Type:
string
Default:
"āœ“"
explorer.icon.hidden: Icon for hidden status. Type:
string
Default:
"ā€„"
explorer.bookmark.root.template: Template for root node of bookmark source. Type:
string
Default:
"[icon] [title] [hidden & 1]"
explorer.bookmark.child.template: Template for child node of bookmark source. Type:
string
Default:
"[selection | 1] [filename] [position] - [annotation]"
explorer.bookmark.child.labelingTemplate: Labeling template for child node of bookmark source, use for preview when previewAction is labeling. Type:
string
Default:
"[filename][fullpath][position][line][annotation]"
explorer.buffer.showHiddenBuffers: Default show hidden buffers. Type:
boolean
Default:
false
explorer.buffer.tabOnly: Default only show buffers in current tab. Type:
boolean
Default:
false
explorer.buffer.root.template: Template for root node of buffer source. Type:
string
Default:
"[icon] [title] [hidden & 1]"
explorer.buffer.child.template: Template for child node of buffer source. Type:
string
Default:
"[git | 2] [selection | 1] [bufnr] [name][modified][readonly] [fullpath]"
explorer.buffer.child.labelingTemplate: Labeling template for child node of buffer source, use for preview when previewAction is labeling. Type:
string
Default:
"[name][bufname][fullpath][modified][readonly][diagnosticError][diagnosticWarning][git]"
explorer.datetime.format: Explorer datetime format, check out https://date-fns.org/v2.9.0/docs/format. Type:
string
Default:
"yy/MM/dd HH:mm:ss"
explorer.file.revealWhenOpen: Explorer will automatically reveal to the current buffer when open explorer. Type:
boolean
Default:
true
explorer.file.autoReveal: Explorer will automatically expand to the current buffer. Type:
boolean
Default:
false
explorer.file.hiddenRules: Custom hidden rules for file. Type:
{
    extensions?: string[];
    filenames?: string[];
    /**
     * Pattern to icon group
     */
    patternMatches?: unknown[];
    [k: string]: unknown;
}
Default:
{
  "extensions": [
    "o",
    "a",
    "obj",
    "pyc"
  ],
  "filenames": [],
  "patternMatches": [
    "^\\."
  ]
}
explorer.file.showHiddenFiles: Default show hidden files. Type:
boolean
Default:
false
explorer.file.root.template: Template for root node of file source. Type:
string
Default:
"[icon] [title] [git & 1][hidden & 1][root] [fullpath]"
explorer.file.root.labelingTemplate: Labeling template for root node of file source, use for preview when previewAction is labeling. Type:
string
Default:
"[fullpath][git]"
explorer.file.child.template: Template for child node file source. Type:
string
Default:
"[git | 2] [selection | clip | 1] [indent][icon | 1] [diagnosticError & 1][filename omitCenter 1][modified][readonly] [linkIcon & 1][link growRight 1 omitCenter 5][size]"
explorer.file.child.labelingTemplate: Labeling template for child node of file source, use for preview when previewAction is labeling. Type:
string
Default:
"[fullpath][link][diagnosticError][diagnosticWarning][git][size][timeAccessed][timeModified][timeCreated][readonly][modified]"
explorer.file.column.clip.copy: Whether the file has been copied. Type:
string
explorer.file.column.clip.cut: Whether the file has been cut. Type:
string
explorer.file.column.indent.chars: Indent chars for file source. Type:
string
Default:
"  "
explorer.file.column.indent.indentLine: Whether to display the alignment line. Type:
boolean
explorer.file.tabCD: Change tab directory when performing the cd action. Type:
boolean
Default:
true
explorer.filename.colored.enable: Enable colored filenames based on status. Type:
boolean | {
    diagnosticError?: boolean;
    diagnosticWarning?: boolean;
    git?: boolean;
    [k: string]: unknown;
}
Default:
true
explorer.file.git.showUntrackedFiles: Show untracked file in git. Type:
boolean | 'system'
explorer.trash.command: Trash command template, arguments(%s source filepath, %l source filepath list), example: 'trash-put %l', 'mv --backup=t %l ~/.trash/'. Type:
('nodejs:module' | 'trash-put %s') | string
Default:
"nodejs:module"
explorer.diagnostic.displayMax: Maximum count of diagnostic column. Type:
number
Default:
99
explorer.diagnostic.enableSubscriptNumber: Subscript number for diagnostic count. Type:
boolean
Default:
false
explorer.git.enable: Enable git. Type:
boolean
Default:
true
explorer.git.command: Git command. Type:
string
Default:
"git"
explorer.git.icon.rootStatus.stashed: Icon for a stash exists for the local repository. Type:
string
Default:
"$"
explorer.git.icon.rootStatus.ahead: Icon for current branch ahead of upstream. Type:
string
Default:
"ā‡”"
explorer.git.icon.rootStatus.behind: Icon for current branch behind upstream. Type:
string
Default:
"ā‡£"
explorer.git.icon.rootStatus.conflicted: Icon for current branch has merge conflicts. Type:
string
Default:
"="
explorer.git.icon.rootStatus.untracked: Icon for there are untracked files in the working directory. Type:
string
Default:
"?"
explorer.git.icon.rootStatus.modified: Icon for there are file modifications in the working directory. Type:
string
Default:
"~"
explorer.git.icon.rootStatus.added: Icon for a new file has been added to the staging area. Type:
string
Default:
"+"
explorer.git.icon.rootStatus.renamed: Icon for a renamed file has been added to the staging area. Type:
string
Default:
"ā†’"
explorer.git.icon.rootStatus.deleted: Icon for a file's deletion has been added to the staging area. Type:
string
Default:
"āœ—"
explorer.git.icon.status.mixed: Icon for git mixed status. Type:
string
Default:
"*"
explorer.git.icon.status.unmodified: Icon for git unmodified status. Type:
string
Default:
" "
explorer.git.icon.status.modified: Icon for git modified status. Type:
string
Default:
"M"
explorer.git.icon.status.added: Icon for git added status. Type:
string
Default:
"A"
explorer.git.icon.status.deleted: Icon for git removed status. Type:
string
Default:
"D"
explorer.git.icon.status.renamed: Icon for git renamed status. Type:
string
Default:
"R"
explorer.git.icon.status.copied: Icon for git copied status. Type:
string
Default:
"C"
explorer.git.icon.status.unmerged: Icon for git unmerged status. Type:
string
Default:
"U"
explorer.git.icon.status.untracked: Icon for git untracked status. Type:
string
Default:
"?"
explorer.git.icon.status.ignored: Icon for git ignored status. Type:
string
Default:
"!"
explorer.git.showIgnored: Show ignored files in git. Type:
boolean
Default:
true
explorer.debug: Enable debug. Type:
boolean
Default:
false

Inspired by


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
typescript (10,035)Ā 
vim (831)Ā 
neovim (291)Ā 
tree (176)Ā 
file (136)Ā 
explorer (34)Ā 
coc (30)Ā 

Find Open Source By Browsing 7,000 Topics Across 59 Categories

Advertising šŸ“¦Ā 10
All Projects
Application Programming Interfaces šŸ“¦Ā 124
Applications šŸ“¦Ā 192
Artificial Intelligence šŸ“¦Ā 78
Blockchain šŸ“¦Ā 73
Build Tools šŸ“¦Ā 113
Cloud Computing šŸ“¦Ā 80
Code Quality šŸ“¦Ā 28
Collaboration šŸ“¦Ā 32
Command Line Interface šŸ“¦Ā 49
Community šŸ“¦Ā 83
Companies šŸ“¦Ā 60
Compilers šŸ“¦Ā 63
Computer Science šŸ“¦Ā 80
Configuration Management šŸ“¦Ā 42
Content Management šŸ“¦Ā 175
Control Flow šŸ“¦Ā 213
Data Formats šŸ“¦Ā 78
Data Processing šŸ“¦Ā 276
Data Storage šŸ“¦Ā 135
Economics šŸ“¦Ā 64
Frameworks šŸ“¦Ā 215
Games šŸ“¦Ā 129
Graphics šŸ“¦Ā 110
Hardware šŸ“¦Ā 152
Integrated Development Environments šŸ“¦Ā 49
Learning Resources šŸ“¦Ā 166
Legal šŸ“¦Ā 29
Libraries šŸ“¦Ā 129
Lists Of Projects šŸ“¦Ā 22
Machine Learning šŸ“¦Ā 347
Mapping šŸ“¦Ā 64
Marketing šŸ“¦Ā 15
Mathematics šŸ“¦Ā 55
Media šŸ“¦Ā 239
Messaging šŸ“¦Ā 98
Networking šŸ“¦Ā 315
Operating Systems šŸ“¦Ā 89
Operations šŸ“¦Ā 121
Package Managers šŸ“¦Ā 55
Programming Languages šŸ“¦Ā 245
Runtime Environments šŸ“¦Ā 100
Science šŸ“¦Ā 42
Security šŸ“¦Ā 396
Social Media šŸ“¦Ā 27
Software Architecture šŸ“¦Ā 72
Software Development šŸ“¦Ā 72
Software Performance šŸ“¦Ā 58
Software Quality šŸ“¦Ā 133
Text Editors šŸ“¦Ā 49
Text Processing šŸ“¦Ā 136
User Interface šŸ“¦Ā 330
User Interface Components šŸ“¦Ā 514
Version Control šŸ“¦Ā 30
Virtualization šŸ“¦Ā 71
Web Browsers šŸ“¦Ā 42
Web Servers šŸ“¦Ā 26
Web User Interface šŸ“¦Ā 210