Disable the confirmation dialog when deleting files in the VS Code explorer to streamline the development workflow and reduce friction during file management operations.
43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
var isGlob = require('is-glob');
|
|
var pathPosixDirname = require('path').posix.dirname;
|
|
var isWin32 = require('os').platform() === 'win32';
|
|
|
|
var slash = '/';
|
|
var backslash = /\\/g;
|
|
var enclosure = /[\{\[].*[\}\]]$/;
|
|
var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/;
|
|
var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g;
|
|
|
|
/**
|
|
* @param {string} str
|
|
* @param {Object} opts
|
|
* @param {boolean} [opts.flipBackslashes=true]
|
|
* @returns {string}
|
|
*/
|
|
module.exports = function globParent(str, opts) {
|
|
var options = Object.assign({ flipBackslashes: true }, opts);
|
|
|
|
// flip windows path separators
|
|
if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {
|
|
str = str.replace(backslash, slash);
|
|
}
|
|
|
|
// special case for strings ending in enclosure containing path separator
|
|
if (enclosure.test(str)) {
|
|
str += slash;
|
|
}
|
|
|
|
// preserves full path in case of trailing path separator
|
|
str += 'a';
|
|
|
|
// remove path parts that are globby
|
|
do {
|
|
str = pathPosixDirname(str);
|
|
} while (isGlob(str) || globby.test(str));
|
|
|
|
// remove escape chars and return result
|
|
return str.replace(escaped, '$1');
|
|
};
|