Awesome Open Source
Awesome Open Source

coc-explorer

Explorer extension for coc.nvim

Note: This project is still under development and may be broken.

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 <Cmd>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 (DEPRECATED) (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 <Cmd>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,
\   },
\   '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 <Cmd>CocCommand explorer --preset .vim<CR>
nmap <space>ef <Cmd>CocCommand explorer --preset floating<CR>
nmap <space>ec <Cmd>CocCommand explorer --preset cocConfig<CR>
nmap <space>eb <Cmd>CocCommand explorer --preset buffer<CR>

" List all presets
nmap <space>el <Cmd>CocList explPresets<CR>

Options

[root-uri]

Explorer root, default is use root-strategies

--root-strategies <root-strategies>

Strategies for root uri, types list of (keep | workspace | cwd | sourceBuffer | reveal | custom:name)

  • keep: never change the root path
  • workspace: workspace.root
  • cwd: getcwd()
  • sourceBuffer: directory of buffer
  • reveal: directory of reveal path

default is: workspace,cwd,sourceBuffer,reveal or "explorer.root.strategies" of coc-settings

Custom root patterns settings

{
  "explorer.root.customRules": {
    "vcs": {
      "patterns": [".git", ".hg", ".projections.json"]
    },
    "vcs-r": {
      "patterns": [".git", ".hg", ".projections.json"],
      "bottomUp": true
    }
  }
}

Using custom root patterns

{
  "explorer.root.strategies": ["workspace", "custom:vcs", "custom:vcs-r"]
}

or :CocCommand explorer --root-strategies workspace,custom:vcs,custom:vcs-r

--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, tab:0, 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

--reveal-when-open | --no-reveal-when-open

Explorer will automatically reveal to the current buffer when open explorer, default: "explorer.file.reveal.whenOpen"

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
    "<c-o>": "noop",

    "*": "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

FAQ

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 <Cmd>call <SID>exec_cur_dir('CocList -I grep')<CR>
  nmap <buffer> <Leader>fG <Cmd>call <SID>exec_cur_dir('CocList -I grep -regex')<CR>
  nmap <buffer> <C-p> <Cmd>call <SID>exec_cur_dir('CocList files')<CR>

  " vim-floaterm
  nmap <buffer> <Leader>ft <Cmd>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

Position: Position. Type:
'left' | 'right' | 'tab' | 'floating'
MappingActionExp: MappingActionExp. Type:
MappingAction | MappingActionExp[]
MappingAction: MappingAction. Type:
string | {
    name?: string;
    args?: string[];
    [k: string]: unknown;
}
PreviewActionStrategy: PreviewActionStrategy. Type:
'labeling' | 'content'
RootStrategy: RootStrategy. Type:
'keep' | 'workspace' | 'cwd' | 'sourceBuffer' | 'reveal'
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?: Position | [
            Position
        ] | [
            Position,
            string
        ];
        /**
         * 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:
Position | [
    Position
] | [
    Position,
    string
]
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.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.previewAction.content.maxHeight: Preview content maximum height. Type:
number
Default:
30
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:
BufferFilter & {
    /**
     * Filter windows for select strategy in source
     */
    sources?: {
        [k: string]: BufferFilter;
    };
    [k: string]: unknown;
}
Default:
{
  "buftypes": [
    "terminal"
  ],
  "filetypes": [
    "vista_kind",
    "qf",
    "tagbar",
    "coctree"
  ],
  "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.expandStores: The expand stores of sources. Type:
boolean | {
    includes: string[];
} | {
    excludes: string[];
}
Default:
true
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.root.strategies: Strategies for root uri. Type:
(RootStrategy | string)[]
Default:
[
  "workspace",
  "cwd",
  "sourceBuffer",
  "reveal"
]
explorer.root.customRules: Patterns for root uri. Type:
{
    [k: string]: {
        patterns: string[];
        /**
         * Search outward from the current buffer, default is false
         */
        bottomUp?: boolean;
        [k: string]: unknown;
    };
}
explorer.enableFloatinput: Enable integrated with coc-floatinput. Type:
boolean
Default:
true
explorer.icon.enableNerdfont: Enable nerdfont. Type:
boolean
Default:
false
explorer.icon.source: The source or file type icon and color. Type:
'builtin' | 'vim-devicons' | 'nvim-web-devicons' | 'nerdfont.vim'
Default:
"builtin"
explorer.icon.customIcons: Custom icons and color highlights. Type:
{
    /**
     * Icons for extension groups
     */
    icons?: {
        /**
         * Icon for an extension group
         */
        [k: string]: {
            /**
             * Group icon
             */
            code: string;
            /**
             * Group icon color
             */
            color: string;
            [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.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.icon.link: Icon for soft link. Type:
string
Default:
""
explorer.icon.readonly: Icon for readonly. Type:
string
Default:
"RO"
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.reveal.whenOpen: Explorer will automatically reveal to the current buffer when open explorer. Type:
boolean
Default:
true
explorer.file.reveal.auto: Explorer will automatically reveal to the current buffer when enter a buffer. Type:
boolean
Default:
false
explorer.file.reveal.filter: Exlorer will not automatically reveal to these buffers. Type:
{
    /**
     * Filter buffer by RegExp
     */
    patterns?: string[];
    /**
     * Filter buffer by literal string
     */
    literals?: string[];
    [k: string]: unknown;
}
Default:
{}
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.link.copy: Whether the file has been copied. Type:
string
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.cdCommand: Change directory when performing the cd action. Type:
false | 'cd' | 'tcd'
Default:
false
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

Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Typescript (246,339
Actions (55,576
Tree (20,456
Vim (18,653
Bookmark (4,250
Neovim (4,038
Coc (144
Coc Nvim (61