diff --git a/Readme.md b/Readme.md
index b5336b601b4..fc056c5f536 100644
--- a/Readme.md
+++ b/Readme.md
@@ -2,7 +2,7 @@
-
Make your Vim/Neovim as smart as VSCode
+Make your Vim/Neovim as smart as VS Code
@@ -14,7 +14,7 @@
---
-
+
_Custom popup menu with snippet support_
@@ -38,7 +38,7 @@ curl -sL install-node.vercel.app/lts | bash
For [vim-plug](https://github.com/junegunn/vim-plug) users:
```vim
-" Use release branch (recommend)
+" Use release branch (recommended)
Plug 'neoclide/coc.nvim', {'branch': 'release'}
" Or build from source code by using yarn: https://yarnpkg.com
@@ -51,15 +51,14 @@ Checkout [Install
coc.nvim](https://github.com/neoclide/coc.nvim/wiki/Install-coc.nvim) for
more info.
-You **have to** install coc extension or configure language servers for
+You **have to** install coc extensions or configure language servers for
LSP support.
-Install extensions like:
+Install extensions like this:
:CocInstall coc-json coc-tsserver
-Or configure language server in `coc-settings.json` opened by
-`:CocConfig`, like:
+Or you can configure a language server in your `coc-settings.json`(open it using `:CocConfig`) like this:
```json
{
@@ -90,7 +89,7 @@ Configuration is required to make coc.nvim easier to work with, since it
doesn't change your key-mappings or Vim options. This is done as much as
possible to avoid conflict with your other plugins.
-**❗️Important**: Some Vim plugins could change key mappings. Please use
+**❗️Important**: Some Vim plugins can change your key mappings. Please use
command like`:verbose imap
t)g+=2;else if(P>i)h+=2;else if(d){var T=o+c-w;if(T>=0&&T=O)return ZM(n,e,C,P)}}}for(var j=-y+f;j<=y-m;j+=2){var T=o+j,O;j===-y||j!==y&&l[T-1]=O)return ZM(n,e,C,P)}}}}return[[mo,n],[Wr,e]]}function ZM(n,e,t,i){var r=n.substring(0,t),o=e.substring(0,i),s=n.substring(t),a=e.substring(i),l=dh(r,o),u=dh(s,a);return l.concat(u)}function M0(n,e){if(!n||!e||n.charAt(0)!==e.charAt(0))return 0;for(var t=0,i=Math.min(n.length,e.length),r=i,o=0;tt)g+=2;else if(E>i)h+=2;else if(d){var P=o+c-w;if(P>=0&&P=N)return PM(n,e,C,E)}}}for(var A=-y+f;A<=y-m;A+=2){var P=o+A,N;A===-y||A!==y&&l[P-1]=N)return PM(n,e,C,E)}}}}return[[po,n],[Hr,e]]}function PM(n,e,t,i){var r=n.substring(0,t),o=e.substring(0,i),s=n.substring(t),a=e.substring(i),l=lh(r,o),u=lh(s,a);return l.concat(u)}function S0(n,e){if(!n||!e||n.charAt(0)!==e.charAt(0))return 0;for(var t=0,i=Math.min(n.length,e.length),r=i,o=0;t=t){r!=null&&(yield[i(r),i(o+1)]);break}if(o!=null){let u=l-o;if(u==1)o=l;else if(u>1)yield[i(r),i(o+1)],r=l;else{yield[i(r),i(o+1)];break}}else r=l;o=l,a==s-1&&(yield[i(r),i(o+1)])}}var Ule,Dv,Ug=D(()=>{"use strict";Jt();Pc();ce();pe();Ule=R.join(Do,"bin/fuzzy.wasm");Dv=class{constructor(e){this.exports=e;this.patternLength=0;this.matchSeq=!1;this.sizes=[2048,1024,1024]}matchSpans(e,t,i){return $le(e,t,i)}matchScoreSpans(e,t){return kv(e,t,2)}createScoreFunction(e,t,i,r){let o=e.toLowerCase(),s;return r==="any"?s=ha:r==="aggressive"?s=da:s=Ml,(a,l=0)=>s(e,o,t,a,a.toLowerCase(),l,i)}getSizes(){return this.sizes}setPattern(e,t=!1){if(e.length>256&&(e=e.slice(0,256)),this.matchSeq=t,this.patternLength=t?e.length:e.replace(/(\s|\t)/g,"").length,this.patternPtr==null){let{malloc:s}=this.exports,{sizes:a}=this;this.contentPtr=s(a[0]),this.patternPtr=s(a[1]),this.resultPtr=s(a[2])}let i=Buffer.from(e,"utf8"),r=i.length,o=new Uint8Array(this.exports.memory.buffer,this.patternPtr,r+1);o.set(i),o[r]=0}changeContent(e){let{sizes:t}=this;e.length>4096&&(e=e.slice(0,4096));let i=Buffer.from(e,"utf8"),r=i.length;if(r>t[0]){let{malloc:s,free:a}=this.exports;a(this.contentPtr);let l=r+1;this.contentPtr=s(l),t[0]=l}let o=new Uint8Array(this.exports.memory.buffer,this.contentPtr,r+1);o.set(i),o[r]=0}match(e){if(this.patternPtr==null)throw new Error("setPattern not called before match");if(this.patternLength===0)return{score:100,positions:new Uint32Array};this.changeContent(e);let{fuzzyMatch:t,memory:i}=this.exports,{resultPtr:r}=this,o=t(this.contentPtr,this.patternPtr,r,this.matchSeq?1:0);if(!o)return;let s=new Uint32Array(i.buffer,r,this.patternLength);return{score:o,positions:s.slice()}}matchHighlights(e,t){let i=this.match(e);if(!i)return;let r=[];for(let o of this.matchSpans(e,i.positions))r.push({span:o,hlGroup:t});return{score:i.score,highlights:r}}free(){let e=[this.contentPtr,this.patternPtr,this.resultPtr],{free:t}=this.exports;e.forEach(i=>{i!=null&&t(i)}),this.contentPtr=this.patternPtr=this.resultPtr=void 0}}});async function Gle(){let n=await(0,st.promisify)(F.readFile)(Xle);return(await global.WebAssembly.instantiate(n,{env:{}})).instance.exports}var Xle,Pv,ga,Mk=D(()=>{"use strict";Jt();ce();Xle=R.join(Do,"bin/strwidth.wasm");ga=class{constructor(e){this.exports=e;this.cache=new Map;this.bytes=new Uint8Array(e.memory.buffer),this.contentPtr=e.malloc(4096)}setAmbw(e){this.exports.setAmbw(e?1:0),this.cache.clear()}getWidth(e,t=!1){let i=e.length;if(i===0)return 0;if(i>4095&&(e=e.slice(0,4095)),t&&this.cache.has(e))return this.cache.get(e);let{contentPtr:r}=this,o=Buffer.from(e,"utf8"),s=o.length;this.bytes.set(o,r),this.bytes[r+s]=0;let a=this.exports.strWidth(r);return t&&this.cache.set(e,a),a}static async create(){if(Pv)return Pv;let e=await Gle();return Pv=new ga(e),Pv}}});var OPe,Rc,VY=D(()=>{"use strict";Re();Ce();ee();Se();Pc();$();pe();Ug();Ik();vv();Mk();OPe=J("quickpick"),Rc=class{constructor(e,t={}){this.nvim=e;this.preferences=t;this.canSelectMany=!1;this.matchOnDescription=!1;this.maxHeight=30;this.filteredItems=[];this.disposables=[];this._changed=!1;this._onDidFinish=new p.Emitter;this._onDidChangeSelection=new p.Emitter;this._onDidChangeValue=new p.Emitter;this.onDidFinish=this._onDidFinish.event;this.onDidChangeSelection=this._onDidChangeSelection.event;this.onDidChangeValue=this._onDidChangeValue.event;let i=[],r=this.input=new ua(this.nvim,"");t.maxHeight&&(this.maxHeight=t.maxHeight),Object.defineProperty(this,"items",{set:o=>{i=le(o),this.selectedItems=i.filter(s=>s.picked),this.filterItems("")},get:()=>i}),Object.defineProperty(this,"activeItems",{set:o=>{i=le(o),this.filteredItems=i,this.showFilteredItems()},get:()=>this.filteredItems}),Object.defineProperty(this,"value",{set:o=>{this.input.value=o},get:()=>this.input.value}),Object.defineProperty(this,"title",{set:o=>{r.title=se(o)},get:()=>r.title??""}),Object.defineProperty(this,"loading",{set:o=>{r.loading=o},get:()=>r.loading}),r.onDidChange(o=>{if(this._changed=!1,this._onDidChangeValue.fire(o),this._changed){this._changed=!1;return}this.filterItems(o)},this),r.onDidFinish(this.onFinish,this)}get maxWidth(){return this.preferences.maxWidth??80}get currIndex(){return this.win?this.win.currIndex:0}get buffer(){return this.bufnr?this.nvim.createBuffer(this.bufnr):void 0}get winid(){var e;return(e=this.win)==null?void 0:e.winid}setCursor(e){var t;(t=this.win)==null||t.setCursor(e,!0)}attachEvents(e){_.on("BufWinLeave",t=>{t==this.bufnr&&(this.bufnr=void 0,this.win=void 0)},null,this.disposables),_.on("PromptKeyPress",async(t,i)=>{t==e&&(i=="