coc-git 2.5.3 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Readme.md +10 -8
- package/lib/index.js +58 -120
- package/package.json +5 -5
package/Readme.md
CHANGED
|
@@ -6,13 +6,6 @@ Git integration of [coc.nvim](https://github.com/neoclide/coc.nvim).
|
|
|
6
6
|
use plugin like [vim-fugitive](https://github.com/tpope/vim-fugitive) at the
|
|
7
7
|
same time.
|
|
8
8
|
|
|
9
|
-
## Supporting
|
|
10
|
-
|
|
11
|
-
If you like my extension, consider supporting me on Patreon or PayPal:
|
|
12
|
-
|
|
13
|
-
<a href="https://www.patreon.com/chemzqm"><img src="https://c5.patreon.com/external/logo/become_a_patron_button.png" alt="Patreon donate button" /> </a>
|
|
14
|
-
<a href="https://www.paypal.com/paypalme/chezqm"><img src="https://werwolv.net/assets/paypal_banner.png" alt="PayPal donate button" /> </a>
|
|
15
|
-
|
|
16
9
|
## Install
|
|
17
10
|
|
|
18
11
|
In your vim/neovim, run command:
|
|
@@ -117,6 +110,8 @@ In your vim/neovim, run command:
|
|
|
117
110
|
|
|
118
111
|
- `git.showCommitInFloating`: Show commit in floating or popup window, default: `false`
|
|
119
112
|
|
|
113
|
+
- `git.floatConfig`: Configure style of float window/popup, extends from floatFactory.floatConfig
|
|
114
|
+
|
|
120
115
|
- `git.gitlab.hosts`: Custom GitLab hosts, default: `["gitlab.com"]`
|
|
121
116
|
|
|
122
117
|
- `git.conflict.enabled`: Enable highlight conflict lines, default: `true`
|
|
@@ -263,7 +258,14 @@ Multiple repositories can be specified using comma separation, like this: `githu
|
|
|
263
258
|
|
|
264
259
|
Q: Virtual text not working.
|
|
265
260
|
|
|
266
|
-
A: Make sure your neovim support virtual text by command `:echo
|
|
261
|
+
A: Make sure your neovim/vim support virtual text by command `:echo has('nvim-0.5.0') || has('patch-9.0.0067')`.
|
|
262
|
+
|
|
263
|
+
## Supporting
|
|
264
|
+
|
|
265
|
+
If you like my extension, consider supporting me on Patreon or PayPal:
|
|
266
|
+
|
|
267
|
+
<a href="https://www.patreon.com/chemzqm"><img src="https://c5.patreon.com/external/logo/become_a_patron_button.png" alt="Patreon donate button" /> </a>
|
|
268
|
+
<a href="https://www.paypal.com/paypalme/chezqm"><img src="https://werwolv.net/assets/paypal_banner.png" alt="PayPal donate button" /> </a>
|
|
267
269
|
|
|
268
270
|
## License
|
|
269
271
|
|
package/lib/index.js
CHANGED
|
@@ -936,107 +936,6 @@ var require_debounce = __commonJS((exports2, module2) => {
|
|
|
936
936
|
module2.exports = debounce3;
|
|
937
937
|
});
|
|
938
938
|
|
|
939
|
-
// node_modules/uuid/deprecate.js
|
|
940
|
-
var require_deprecate = __commonJS((exports2, module2) => {
|
|
941
|
-
var deprecate;
|
|
942
|
-
try {
|
|
943
|
-
const util2 = require("util");
|
|
944
|
-
deprecate = util2.deprecate;
|
|
945
|
-
} catch (err) {
|
|
946
|
-
deprecate = function deprecate2(fn, msg) {
|
|
947
|
-
var warned = false;
|
|
948
|
-
function deprecated() {
|
|
949
|
-
if (!warned) {
|
|
950
|
-
console.warn(msg);
|
|
951
|
-
warned = true;
|
|
952
|
-
}
|
|
953
|
-
return fn.apply(this, arguments);
|
|
954
|
-
}
|
|
955
|
-
return deprecated;
|
|
956
|
-
};
|
|
957
|
-
}
|
|
958
|
-
module2.exports = deprecate;
|
|
959
|
-
});
|
|
960
|
-
|
|
961
|
-
// node_modules/uuid/dist/rng.js
|
|
962
|
-
var require_rng = __commonJS((exports2, module2) => {
|
|
963
|
-
"use strict";
|
|
964
|
-
Object.defineProperty(exports2, "__esModule", {
|
|
965
|
-
value: true
|
|
966
|
-
});
|
|
967
|
-
exports2.default = rng;
|
|
968
|
-
var _crypto = _interopRequireDefault(require("crypto"));
|
|
969
|
-
function _interopRequireDefault(obj) {
|
|
970
|
-
return obj && obj.__esModule ? obj : {default: obj};
|
|
971
|
-
}
|
|
972
|
-
function rng() {
|
|
973
|
-
return _crypto.default.randomBytes(16);
|
|
974
|
-
}
|
|
975
|
-
module2.exports = exports2.default;
|
|
976
|
-
});
|
|
977
|
-
|
|
978
|
-
// node_modules/uuid/dist/bytesToUuid.js
|
|
979
|
-
var require_bytesToUuid = __commonJS((exports2, module2) => {
|
|
980
|
-
"use strict";
|
|
981
|
-
Object.defineProperty(exports2, "__esModule", {
|
|
982
|
-
value: true
|
|
983
|
-
});
|
|
984
|
-
exports2.default = void 0;
|
|
985
|
-
var byteToHex = [];
|
|
986
|
-
for (var i = 0; i < 256; ++i) {
|
|
987
|
-
byteToHex[i] = (i + 256).toString(16).substr(1);
|
|
988
|
-
}
|
|
989
|
-
function bytesToUuid(buf, offset) {
|
|
990
|
-
var i2 = offset || 0;
|
|
991
|
-
var bth = byteToHex;
|
|
992
|
-
return [bth[buf[i2++]], bth[buf[i2++]], bth[buf[i2++]], bth[buf[i2++]], "-", bth[buf[i2++]], bth[buf[i2++]], "-", bth[buf[i2++]], bth[buf[i2++]], "-", bth[buf[i2++]], bth[buf[i2++]], "-", bth[buf[i2++]], bth[buf[i2++]], bth[buf[i2++]], bth[buf[i2++]], bth[buf[i2++]], bth[buf[i2++]]].join("");
|
|
993
|
-
}
|
|
994
|
-
var _default = bytesToUuid;
|
|
995
|
-
exports2.default = _default;
|
|
996
|
-
module2.exports = exports2.default;
|
|
997
|
-
});
|
|
998
|
-
|
|
999
|
-
// node_modules/uuid/dist/v4.js
|
|
1000
|
-
var require_v4 = __commonJS((exports2, module2) => {
|
|
1001
|
-
"use strict";
|
|
1002
|
-
Object.defineProperty(exports2, "__esModule", {
|
|
1003
|
-
value: true
|
|
1004
|
-
});
|
|
1005
|
-
exports2.default = void 0;
|
|
1006
|
-
var _rng = _interopRequireDefault(require_rng());
|
|
1007
|
-
var _bytesToUuid = _interopRequireDefault(require_bytesToUuid());
|
|
1008
|
-
function _interopRequireDefault(obj) {
|
|
1009
|
-
return obj && obj.__esModule ? obj : {default: obj};
|
|
1010
|
-
}
|
|
1011
|
-
function v4(options, buf, offset) {
|
|
1012
|
-
var i = buf && offset || 0;
|
|
1013
|
-
if (typeof options == "string") {
|
|
1014
|
-
buf = options === "binary" ? new Array(16) : null;
|
|
1015
|
-
options = null;
|
|
1016
|
-
}
|
|
1017
|
-
options = options || {};
|
|
1018
|
-
var rnds = options.random || (options.rng || _rng.default)();
|
|
1019
|
-
rnds[6] = rnds[6] & 15 | 64;
|
|
1020
|
-
rnds[8] = rnds[8] & 63 | 128;
|
|
1021
|
-
if (buf) {
|
|
1022
|
-
for (var ii = 0; ii < 16; ++ii) {
|
|
1023
|
-
buf[i + ii] = rnds[ii];
|
|
1024
|
-
}
|
|
1025
|
-
}
|
|
1026
|
-
return buf || (0, _bytesToUuid.default)(rnds);
|
|
1027
|
-
}
|
|
1028
|
-
var _default = v4;
|
|
1029
|
-
exports2.default = _default;
|
|
1030
|
-
module2.exports = exports2.default;
|
|
1031
|
-
});
|
|
1032
|
-
|
|
1033
|
-
// node_modules/uuid/v4.js
|
|
1034
|
-
var require_v42 = __commonJS((exports2, module2) => {
|
|
1035
|
-
var deprecate = require_deprecate();
|
|
1036
|
-
var v4 = require_v4();
|
|
1037
|
-
module2.exports = deprecate(v4, "Deep requiring like `const uuidv4 = require('uuid/v4');` is deprecated as of uuid@7.x. Please require the top-level module when using the Node.js CommonJS module or use ECMAScript Modules when bundling for the browser. See https://github.com/uuidjs/uuid#deep-requires-now-deprecated for more information.");
|
|
1038
|
-
});
|
|
1039
|
-
|
|
1040
939
|
// node_modules/safer-buffer/safer.js
|
|
1041
940
|
var require_safer = __commonJS((exports2, module2) => {
|
|
1042
941
|
"use strict";
|
|
@@ -5814,7 +5713,7 @@ var DocumentManager = class {
|
|
|
5814
5713
|
diffRevision: config.get("diffRevision", ""),
|
|
5815
5714
|
issueFormat: config.get("issueFormat", "#%i"),
|
|
5816
5715
|
virtualTextPrefix: config.get("virtualTextPrefix", " "),
|
|
5817
|
-
addGBlameToVirtualText:
|
|
5716
|
+
addGBlameToVirtualText: config.get("addGBlameToVirtualText", false),
|
|
5818
5717
|
addGBlameToBufferVar: config.get("addGBlameToBufferVar", false),
|
|
5819
5718
|
blameUseRealTime: config.get("blameUseRealTime", false),
|
|
5820
5719
|
enableGutters: config.get("enableGutters", true),
|
|
@@ -6038,7 +5937,46 @@ var import_fs2 = __toModule(require("fs"));
|
|
|
6038
5937
|
var import_os = __toModule(require("os"));
|
|
6039
5938
|
var import_path4 = __toModule(require("path"));
|
|
6040
5939
|
var import_util6 = __toModule(require("util"));
|
|
6041
|
-
|
|
5940
|
+
|
|
5941
|
+
// node_modules/uuid/dist/esm-node/rng.js
|
|
5942
|
+
var import_crypto = __toModule(require("crypto"));
|
|
5943
|
+
function rng() {
|
|
5944
|
+
return import_crypto.default.randomBytes(16);
|
|
5945
|
+
}
|
|
5946
|
+
|
|
5947
|
+
// node_modules/uuid/dist/esm-node/bytesToUuid.js
|
|
5948
|
+
var byteToHex = [];
|
|
5949
|
+
for (var i = 0; i < 256; ++i) {
|
|
5950
|
+
byteToHex[i] = (i + 256).toString(16).substr(1);
|
|
5951
|
+
}
|
|
5952
|
+
function bytesToUuid(buf, offset) {
|
|
5953
|
+
var i = offset || 0;
|
|
5954
|
+
var bth = byteToHex;
|
|
5955
|
+
return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], "-", bth[buf[i++]], bth[buf[i++]], "-", bth[buf[i++]], bth[buf[i++]], "-", bth[buf[i++]], bth[buf[i++]], "-", bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join("");
|
|
5956
|
+
}
|
|
5957
|
+
var bytesToUuid_default = bytesToUuid;
|
|
5958
|
+
|
|
5959
|
+
// node_modules/uuid/dist/esm-node/v4.js
|
|
5960
|
+
function v4(options, buf, offset) {
|
|
5961
|
+
var i = buf && offset || 0;
|
|
5962
|
+
if (typeof options == "string") {
|
|
5963
|
+
buf = options === "binary" ? new Array(16) : null;
|
|
5964
|
+
options = null;
|
|
5965
|
+
}
|
|
5966
|
+
options = options || {};
|
|
5967
|
+
var rnds = options.random || (options.rng || rng)();
|
|
5968
|
+
rnds[6] = rnds[6] & 15 | 64;
|
|
5969
|
+
rnds[8] = rnds[8] & 63 | 128;
|
|
5970
|
+
if (buf) {
|
|
5971
|
+
for (var ii = 0; ii < 16; ++ii) {
|
|
5972
|
+
buf[i + ii] = rnds[ii];
|
|
5973
|
+
}
|
|
5974
|
+
}
|
|
5975
|
+
return buf || bytesToUuid_default(rnds);
|
|
5976
|
+
}
|
|
5977
|
+
var v4_default = v4;
|
|
5978
|
+
|
|
5979
|
+
// src/model/repo.ts
|
|
6042
5980
|
var Repo = class {
|
|
6043
5981
|
constructor(git, channel, root) {
|
|
6044
5982
|
this.git = git;
|
|
@@ -6172,7 +6110,7 @@ var Repo = class {
|
|
|
6172
6110
|
return "";
|
|
6173
6111
|
}
|
|
6174
6112
|
}
|
|
6175
|
-
async getDiff(relFilepath, content, revision = "") {
|
|
6113
|
+
async getDiff(relFilepath, content, revision = "", encoding = "utf8") {
|
|
6176
6114
|
if (relFilepath.startsWith(`.git${import_path4.default.sep}`))
|
|
6177
6115
|
return;
|
|
6178
6116
|
let fullpath = import_path4.default.join(this.root, relFilepath);
|
|
@@ -6183,7 +6121,7 @@ var Repo = class {
|
|
|
6183
6121
|
let indexed = await this.isIndexed(relFilepath);
|
|
6184
6122
|
if (!indexed)
|
|
6185
6123
|
return;
|
|
6186
|
-
let res = await this.exec(["--no-pager", "show", `${revision}:${toUnixSlash(relFilepath)}`]);
|
|
6124
|
+
let res = await this.exec(["--no-pager", "show", `${revision}:${toUnixSlash(relFilepath)}`], {encoding});
|
|
6187
6125
|
if (!res.stdout)
|
|
6188
6126
|
return;
|
|
6189
6127
|
staged = res.stdout.replace(/\r?\n$/, "").split(/\r?\n/).join("\n");
|
|
@@ -6191,8 +6129,8 @@ var Repo = class {
|
|
|
6191
6129
|
this.channel.append(e.stack);
|
|
6192
6130
|
return;
|
|
6193
6131
|
}
|
|
6194
|
-
const stagedFile = import_path4.default.join(import_os.default.tmpdir(), `coc-${
|
|
6195
|
-
const currentFile = import_path4.default.join(import_os.default.tmpdir(), `coc-${
|
|
6132
|
+
const stagedFile = import_path4.default.join(import_os.default.tmpdir(), `coc-${v4_default()}`);
|
|
6133
|
+
const currentFile = import_path4.default.join(import_os.default.tmpdir(), `coc-${v4_default()}`);
|
|
6196
6134
|
await import_util6.default.promisify(import_fs2.default.writeFile)(stagedFile, staged + "\n", "utf8");
|
|
6197
6135
|
await import_util6.default.promisify(import_fs2.default.writeFile)(currentFile, content, "utf8");
|
|
6198
6136
|
let output = await getStdout(`git --no-pager diff --no-ext-diff -p -U0 --no-color ${shellescape(stagedFile)} ${shellescape(currentFile)}`);
|
|
@@ -6631,6 +6569,9 @@ var GitBuffer = class {
|
|
|
6631
6569
|
this.hasConflicts = hasConflicts;
|
|
6632
6570
|
this.refresh();
|
|
6633
6571
|
});
|
|
6572
|
+
this.doc.buffer.getOption("fileencoding").then((encoding) => {
|
|
6573
|
+
this.encoding = encoding;
|
|
6574
|
+
});
|
|
6634
6575
|
}
|
|
6635
6576
|
get cachedDiffs() {
|
|
6636
6577
|
return this.diffs;
|
|
@@ -6819,7 +6760,7 @@ var GitBuffer = class {
|
|
|
6819
6760
|
line = line + adjust;
|
|
6820
6761
|
let chunk = chunks.find((o) => o.add.lnum <= line && o.add.lnum + o.add.count >= line);
|
|
6821
6762
|
if (chunk) {
|
|
6822
|
-
let content = "Staged
|
|
6763
|
+
let content = "Staged changes\n" + chunk.lines.join("\n");
|
|
6823
6764
|
await this.showDoc(content, "diff");
|
|
6824
6765
|
}
|
|
6825
6766
|
}
|
|
@@ -6846,7 +6787,7 @@ var GitBuffer = class {
|
|
|
6846
6787
|
let buffer = nvim.createBuffer(this.doc.bufnr);
|
|
6847
6788
|
let hide_blame = await nvim.getVar("coc_git_hide_blame_virtual_text");
|
|
6848
6789
|
if (hide_blame) {
|
|
6849
|
-
await buffer.
|
|
6790
|
+
await buffer.clearNamespace(virtualTextSrcId);
|
|
6850
6791
|
} else {
|
|
6851
6792
|
if (addGBlameToBufferVar) {
|
|
6852
6793
|
nvim.pauseNotification();
|
|
@@ -6856,15 +6797,10 @@ var GitBuffer = class {
|
|
|
6856
6797
|
}
|
|
6857
6798
|
if (addGBlameToVirtualText) {
|
|
6858
6799
|
const prefix = this.config.virtualTextPrefix;
|
|
6859
|
-
|
|
6860
|
-
|
|
6861
|
-
|
|
6862
|
-
|
|
6863
|
-
virt_text: [[prefix + blameText, "CocCodeLens"]]
|
|
6864
|
-
});
|
|
6865
|
-
} else {
|
|
6866
|
-
await buffer.setVirtualText(virtualTextSrcId, lnum - 1, [[prefix + blameText, "CocCodeLens"]]);
|
|
6867
|
-
}
|
|
6800
|
+
nvim.pauseNotification();
|
|
6801
|
+
buffer.clearNamespace(virtualTextSrcId);
|
|
6802
|
+
buffer.setVirtualText(virtualTextSrcId, lnum - 1, [[prefix + blameText, "CocCodeLens"]]);
|
|
6803
|
+
nvim.resumeNotification(true, true);
|
|
6868
6804
|
}
|
|
6869
6805
|
}
|
|
6870
6806
|
}
|
|
@@ -6891,7 +6827,9 @@ var GitBuffer = class {
|
|
|
6891
6827
|
let {nvim} = import_coc12.workspace;
|
|
6892
6828
|
let revision = this.config.diffRevision;
|
|
6893
6829
|
const {bufnr} = this.doc;
|
|
6894
|
-
|
|
6830
|
+
let content = this.doc.content;
|
|
6831
|
+
let eol = this.doc.textDocument["eol"];
|
|
6832
|
+
const diffs = await this.repo.getDiff(this.relpath, eol ? content : content + "\n", revision, this.encoding || "utf8");
|
|
6895
6833
|
if (diffs == null) {
|
|
6896
6834
|
if (((_a = this.currentSigns) == null ? void 0 : _a.length) > 0) {
|
|
6897
6835
|
this.currentSigns = [];
|
|
@@ -7451,7 +7389,7 @@ var GitBuffer = class {
|
|
|
7451
7389
|
buffer.setVar("coc_git_blame", "", true);
|
|
7452
7390
|
}
|
|
7453
7391
|
if (this.config.addGBlameToVirtualText) {
|
|
7454
|
-
buffer.
|
|
7392
|
+
buffer.clearNamespace(this.config.virtualTextSrcId);
|
|
7455
7393
|
}
|
|
7456
7394
|
nvim.resumeNotification(false, true);
|
|
7457
7395
|
this._disposed = true;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "coc-git",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"description": "Git extension for coc.nvim",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"publisher": "chemzqm",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"git"
|
|
10
10
|
],
|
|
11
11
|
"engines": {
|
|
12
|
-
"coc": "^0.0.
|
|
12
|
+
"coc": "^0.0.82"
|
|
13
13
|
},
|
|
14
14
|
"repository": {
|
|
15
15
|
"type": "git",
|
|
@@ -138,12 +138,12 @@
|
|
|
138
138
|
"git.virtualTextPrefix": {
|
|
139
139
|
"type": "string",
|
|
140
140
|
"default": " ",
|
|
141
|
-
"description": "Prefix of git blame
|
|
141
|
+
"description": "Prefix of git blame information to virtual text, require virtual text feature of vim/neovim."
|
|
142
142
|
},
|
|
143
143
|
"git.addGBlameToVirtualText": {
|
|
144
144
|
"type": "boolean",
|
|
145
145
|
"default": false,
|
|
146
|
-
"description": "Add git blame information to virtual text, require virtual text feature of neovim."
|
|
146
|
+
"description": "Add git blame information to virtual text, require virtual text feature of vim/neovim."
|
|
147
147
|
},
|
|
148
148
|
"git.addGBlameToBufferVar": {
|
|
149
149
|
"type": "boolean",
|
|
@@ -427,7 +427,7 @@
|
|
|
427
427
|
"@types/node": "^12.12.0",
|
|
428
428
|
"@types/uuid": "^7.0.1",
|
|
429
429
|
"@types/which": "^1.3.2",
|
|
430
|
-
"coc.nvim": "^0.0.83-next.
|
|
430
|
+
"coc.nvim": "^0.0.83-next.14",
|
|
431
431
|
"colors": "^1.4.0",
|
|
432
432
|
"debounce": "^1.2.0",
|
|
433
433
|
"esbuild": "^0.8.29",
|