
Research
/Security News
9 Malicious NuGet Packages Deliver Time-Delayed Destructive Payloads
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.
coc-explorer
Advanced tools
Explorer extension for coc.nvim
Note: This project is still under development and may be broken.

>= vim 8.1.1418 or >= neovim 0.3.1
:CocInstall coc-explorer
:nmap <space>e <Cmd>CocCommand explorer<CR>
<space>e
? to show mappings helpMore at Quickstart
explorer.openAction.strategy options:
? in explorer to check out the all actionslsar / unar):CocCommand explorer [options] [root-uri]
CocExplorerOpenPre: triggered before open explorerCocExplorerOpenPost: triggered after open explorerCocExplorerQuitPre: triggered before quit explorerCocExplorerQuitPost: triggered after quit explorer: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>
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>
[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 pathworkspace: workspace.rootcwd: getcwd()sourceBuffer: directory of bufferreveal: directory of reveal pathdefault 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-toggleClose the explorer if it exists, default: --toggle
--focus | --no-focusFocus 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-openquit 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-centercenterright-centercenter-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:
default: [icon] [title] [hidden & 1]
--buffer-child-template <template>Template for child node of buffer source
Columns:
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:
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:
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:
default: [icon] [title] [hidden & 1]
--bookmark-child-template <template>Template for child node of bookmark source
Columns:
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-openExplorer will automatically reveal to the current buffer when open explorer, default: "explorer.file.reveal.whenOpen"
Example:
[git | 2] [selection | clip | 1] [diagnosticError & 1][filename growRight 1 omitCenter 5]
[git]
git.[git | 2]
git is not empty, display git, otherwise display 2 spaces.[selection | clip | 1]
selection and clip in turn, if one is not empty, display it, otherwise display 1 spaces.[diagnosticError & 1]
diagnosticError is empty, display nothing. otherwise display diagnosticError and 1 space.[filename growRight 1 omitCenter 5]
filename, grow right column volume is 1, omit center volume is 5Grammar:
block
┌──────────────┴───────────────┐
┌────────┴───────────┐ ┌────────────────┴────────────────┐
[selection | clip | 1] [filename growRight 1 omitCenter 5]
↑
plain string
column
┌─────────┴───────────┐
│ │ volume of modifier
│ ┌────┬──────│──────────┴────┬────────────┐
┌───┴───┐ ┌─┴┐ ↓ ┌──┴───┐ ↓ ↓
[selection | clip | 1] [filename growRight 1 omitCenter 5]
↑ ↑ └───┬───┘ └────┬───┘
└──────┴───────────┬──────┴────────────┘
modifier
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",
},
}
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
explorer: Open explorer.Definitions
Explorer1: Explorer1.{
/**
* Explorer source name
*/
name: 'bookmark' | 'buffer' | 'file';
/**
* Whether to expand it by default
*/
expand: boolean;
[k: string]: unknown | undefined;
}[]
Position: Position.'left' | 'right' | 'tab' | 'floating'
MappingActionExp: MappingActionExp.MappingAction | MappingActionExp[]
MappingAction: MappingAction.string | {
name?: string;
args?: string[];
[k: string]: unknown | undefined;
}
PreviewActionStrategy: PreviewActionStrategy.'labeling' | 'content'
RootStrategy: RootStrategy.'keep' | 'workspace' | 'cwd' | 'sourceBuffer' | 'reveal'
explorer.presets: Explorer presets.{
[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' | 'drop.select' | 'drop.tab' | 'previousBuffer' | 'previousWindow' | 'sourceWindow';
/**
* quit explorer when open action
*/
'quit-on-open'?: boolean;
reveal?: string;
sources?: Explorer1;
/**
* 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 | undefined;
} | undefined;
}Default: null
explorer.mouseMode: Mouse mode.'none' | 'singleclick' | 'doubleclick'Default: "doubleclick"
explorer.keyMappingMode: Keymapping mode.'none' | 'default'Default: "default"
explorer.keyMappings.global: .MappingDefault: {}
explorer.keyMappings.vmap: .Mapping1Default: {}
explorer.keyMappings.sources: Custom key mappings in source.{
[k: string]: Mapping2 | undefined;
}Default: {}
explorer.toggle: Close the explorer if it exists.booleanDefault: true
explorer.focus: Focus to explorer when opened.booleanDefault: true
explorer.position: Explorer position.Position | [
Position
] | [
Position,
string
]Default: "left"
explorer.width: Width of explorer window for open in left or right side.numberDefault: 40
explorer.contentWidth: Content width, use negative value or zero to as `width - value`.numberDefault: 0
explorer.contentWidthType: Type of content width.'win-width' | 'vim-width'Default: "vim-width"
explorer.floating.position: Position of Explorer for floating window.('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`.numberDefault: -10
explorer.floating.height: Height of explorer window when position is floating, use negative value or zero to as `height - value`.numberDefault: -10
explorer.floating.contentWidth: Width of content when position is floating, use negative value or zero to as `width - value`.numberDefault: 0
explorer.floating.border.enable: .booleanDefault: true
explorer.floating.border.chars: Border chars for floating window, their order is top/right/bottom/left/topleft/topright/botright/botleft.string[]Default: [
"─",
"│",
"─",
"│",
"┌",
"┐",
"┘",
"└"
]
explorer.floating.border.title: .stringDefault: "coc-explorer"
explorer.floating.hideOnCocList: Hide floating window, when opening CocList.booleanDefault: true
explorer.autoExpandMaxDepth: Automatically expand maximum depth of one time.numberDefault: 20
explorer.autoExpandOptions: Automatically expand options.('recursive' | 'compact' | 'uncompact' | 'recursiveSingle')[]Default: [
"compact",
"uncompact"
]
explorer.autoCollapseOptions: Automatically collapse options.'recursive'[]Default: [
"recursive"
]
explorer.quitOnOpen: quit explorer when open action.booleanDefault: false
explorer.previewAction.onHover: Open preview when hovering over on node.false | PreviewActionStrategy | [
PreviewActionStrategy,
number
]Default: false
explorer.previewAction.content.maxHeight: Preview content maximum height.numberDefault: 30
explorer.openAction.strategy: Strategy for open action.'select' | 'split' | 'split.plain' | 'split.intelligent' | 'vsplit' | 'vsplit.plain' | 'vsplit.intelligent' | 'tab' | 'drop.select' | 'drop.tab' | 'previousBuffer' | 'previousWindow' | 'sourceWindow'Default: "select"
explorer.openAction.select.filter: Filter windows for select strategy.BufferFilter & {
/**
* Filter windows for select strategy in source
*/
sources?: {
[k: string]: BufferFilter;
};
[k: string]: unknown | undefined;
}Default: {
"buftypes": [
"terminal"
],
"filetypes": [
"vista",
"vista_kind",
"qf",
"tagbar",
"coctree"
],
"floatingWindows": true,
"sources": {
"buffer": {
"buftypes": []
}
}
}
explorer.openAction.select.chars: Chars for select strategy.stringDefault: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
explorer.openAction.for.directory: The action when you open a directory of file source.MappingAction | MappingActionExp[]Default: "cd"
explorer.openAction.relativePath: Use relative path when open a file with openAction.booleanDefault: false
explorer.expandStores: The expand stores of sources.boolean | {
includes: string[];
} | {
excludes: string[];
}Default: true
explorer.sources: .Explorer1Default: [
{
"name": "bookmark",
"expand": false
},
{
"name": "buffer",
"expand": false
},
{
"name": "file",
"expand": true
}
]
explorer.root.strategies: Strategies for root uri.(RootStrategy | string)[]Default: [
"workspace",
"cwd",
"sourceBuffer",
"reveal"
]
explorer.root.customRules: Patterns for root uri.{
[k: string]: {
patterns: string[];
/**
* Search outward from the current buffer, default is false
*/
bottomUp?: boolean;
[k: string]: unknown | undefined;
} | undefined;
}Default: null
explorer.enableFloatinput: Enable integrated with coc-floatinput.booleanDefault: true
explorer.icon.enableNerdfont: Enable nerdfont.booleanDefault: false
explorer.icon.source: The source or file type icon and color.'builtin' | 'vim-devicons' | 'nvim-web-devicons' | 'nerdfont.vim'Default: "builtin"
explorer.icon.customIcons: Custom icons and color highlights.{
/**
* Icons for extension groups
*/
icons?: {
/**
* Icon for an extension group
*/
[k: string]: {
/**
* Group icon
*/
code: string;
/**
* Group icon color
*/
color: string;
[k: string]: unknown | undefined;
} | undefined;
};
/**
* File extension to icon group
*/
extensions?: {
[k: string]: unknown | undefined;
};
/**
* Filename to icon group
*/
filenames?: {
[k: string]: unknown | undefined;
};
/**
* Filename to icon group
*/
dirnames?: {
[k: string]: unknown | undefined;
};
/**
* Pattern to icon group
*/
patternMatches?: {
[k: string]: unknown | undefined;
};
/**
* Pattern to icon group
*/
dirPatternMatches?: {
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}Default: {
"icons": {},
"extensions": {},
"filenames": {},
"dirnames": {},
"patternMatches": {},
"dirPatternMatches": {}
}
explorer.icon.expanded: Icon for expanded node.stringDefault: "-"
explorer.icon.collapsed: Icon for collapsed node.stringDefault: "+"
explorer.icon.selected: Selection selected chars for File source.stringDefault: "✓"
explorer.icon.hidden: Icon for hidden status.stringDefault: "‥"
explorer.icon.link: Icon for soft link.stringDefault: "→"
explorer.icon.readonly: Icon for readonly.stringDefault: "RO"
explorer.bookmark.root.template: Template for root node of bookmark source.stringDefault: "[icon] [title] [hidden & 1]"
explorer.bookmark.child.template: Template for child node of bookmark source.stringDefault: "[selection | 1] [filename] [position] - [annotation]"
explorer.bookmark.child.labelingTemplate: Labeling template for child node of bookmark source, use for preview when previewAction is labeling.stringDefault: "[filename][fullpath][position][line][annotation]"
explorer.buffer.showHiddenBuffers: Default show hidden buffers.booleanDefault: false
explorer.buffer.tabOnly: Default only show buffers in current tab.booleanDefault: false
explorer.buffer.root.template: Template for root node of buffer source.stringDefault: "[icon] [title] [hidden & 1]"
explorer.buffer.child.template: Template for child node of buffer source.stringDefault: "[git | 2] [selection | 1] [bufnr] [name][modified][readonly] [relativePath]"
explorer.buffer.child.labelingTemplate: Labeling template for child node of buffer source, use for preview when previewAction is labeling.stringDefault: "[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.stringDefault: "yy/MM/dd HH:mm:ss"
explorer.file.reveal.whenOpen: Explorer will automatically reveal to the current buffer when open explorer.booleanDefault: true
explorer.file.reveal.auto: Explorer will automatically reveal to the current buffer when enter a buffer.booleanDefault: false
explorer.file.reveal.filter: Exlorer will not automatically reveal to these buffers.{
/**
* Filter buffer by RegExp
*/
patterns?: string[];
/**
* Filter buffer by literal string
*/
literals?: string[];
[k: string]: unknown | undefined;
}Default: {}
explorer.file.hiddenRules: Custom hidden rules for file.{
extensions?: string[];
filenames?: string[];
/**
* Pattern to icon group
*/
patternMatches?: unknown[];
[k: string]: unknown | undefined;
}Default: {
"extensions": [
"o",
"a",
"obj",
"pyc"
],
"filenames": [],
"patternMatches": [
"^\\."
]
}
explorer.file.showHiddenFiles: Default show hidden files.booleanDefault: false
explorer.file.root.template: Template for root node of file source.stringDefault: "[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.stringDefault: "[fullpath][git]"
explorer.file.child.template: Template for child node file source.stringDefault: "[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.stringDefault: "[fullpath][link][diagnosticError][diagnosticWarning][git][size][timeAccessed][timeModified][timeCreated][readonly][modified]"
explorer.file.column.link.copy: Whether the file has been copied.stringDefault: null
explorer.file.column.clip.copy: Whether the file has been copied.stringDefault: null
explorer.file.column.clip.cut: Whether the file has been cut.stringDefault: null
explorer.file.column.indent.chars: Indent chars for file source.stringDefault: " "
explorer.file.column.indent.indentLine: Whether to display the alignment line.booleanDefault: null
explorer.file.cdCommand: Change directory when performing the cd action.false | 'cd' | 'tcd'Default: false
explorer.filename.colored.enable: Enable colored filenames based on status.boolean | {
diagnosticError?: boolean;
diagnosticWarning?: boolean;
git?: boolean;
[k: string]: unknown | undefined;
}Default: true
explorer.file.git.showUntrackedFiles: Show untracked file in git.boolean | 'system'Default: null
explorer.trash.command: Trash command template, arguments(%s source filepath, %l source filepath list), example: 'trash-put %l', 'mv --backup=t %l ~/.trash/'.('nodejs:module' | 'trash-put %s') | stringDefault: "nodejs:module"
explorer.diagnostic.displayMax: Maximum count of diagnostic column.numberDefault: 99
explorer.diagnostic.enableSubscriptNumber: Subscript number for diagnostic count.booleanDefault: false
explorer.git.enable: Enable git.booleanDefault: true
explorer.git.command: Git command.stringDefault: "git"
explorer.git.icon.rootStatus.stashed: Icon for a stash exists for the local repository.stringDefault: "$"
explorer.git.icon.rootStatus.ahead: Icon for current branch ahead of upstream.stringDefault: "⇡"
explorer.git.icon.rootStatus.behind: Icon for current branch behind upstream.stringDefault: "⇣"
explorer.git.icon.rootStatus.conflicted: Icon for current branch has merge conflicts.stringDefault: "="
explorer.git.icon.rootStatus.untracked: Icon for there are untracked files in the working directory.stringDefault: "?"
explorer.git.icon.rootStatus.modified: Icon for there are file modifications in the working directory.stringDefault: "~"
explorer.git.icon.rootStatus.added: Icon for a new file has been added to the staging area.stringDefault: "+"
explorer.git.icon.rootStatus.renamed: Icon for a renamed file has been added to the staging area.stringDefault: "→"
explorer.git.icon.rootStatus.deleted: Icon for a file's deletion has been added to the staging area.stringDefault: "✗"
explorer.git.icon.status.mixed: Icon for git mixed status.stringDefault: "*"
explorer.git.icon.status.unmodified: Icon for git unmodified status.stringDefault: " "
explorer.git.icon.status.modified: Icon for git modified status.stringDefault: "M"
explorer.git.icon.status.added: Icon for git added status.stringDefault: "A"
explorer.git.icon.status.deleted: Icon for git removed status.stringDefault: "D"
explorer.git.icon.status.renamed: Icon for git renamed status.stringDefault: "R"
explorer.git.icon.status.copied: Icon for git copied status.stringDefault: "C"
explorer.git.icon.status.unmerged: Icon for git unmerged status.stringDefault: "U"
explorer.git.icon.status.untracked: Icon for git untracked status.stringDefault: "?"
explorer.git.icon.status.ignored: Icon for git ignored status.stringDefault: "!"
explorer.git.showIgnored: Show ignored files in git.booleanDefault: true
explorer.debug: Enable debug.booleanDefault: false
FAQs
explorer for coc.nvim
The npm package coc-explorer receives a total of 339 weekly downloads. As such, coc-explorer popularity was classified as not popular.
We found that coc-explorer demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.