").addClass("lsp-hover-actions");let count=0;return caps.definitionProvider&&($actions.append(_action("fa-solid fa-arrow-right",Strings.CMD_JUMPTO_DEFINITION,Commands.NAVIGATE_JUMPTO_DEFINITION,editor,pos)),count++),caps.referencesProvider&&($actions.append(_action("fa-solid fa-magnifying-glass",Strings.FIND_ALL_REFERENCES,Commands.CMD_FIND_ALL_REFERENCES,editor,pos,!0)),count++),count?$actions:null}function HoverProvider(client){this.client=client,this.QUICK_VIEW_NAME="lsp.hover."+client.serverId}HoverProvider.prototype.getQuickView=function(editor,pos,token,line){const self=this;return new Promise(function(resolve,reject){if(!(self.client&&self.client.servesDocument(editor)&&self.client.getServerCapabilities()&&self.client.getServerCapabilities().hoverProvider))return void reject();const filePath=editor.document.file._path;self.client.requestHover({filePath:filePath,cursorPos:pos}).done(function(hover){const html=hover&&_renderContents(hover.contents);if(!html)return void reject();let start={line:pos.line,ch:token.start},end={line:pos.line,ch:token.end};hover.range&&(start={line:hover.range.start.line,ch:hover.range.start.character},end={line:hover.range.end.line,ch:hover.range.end.character});const $content=$("
").addClass("lsp-hover-quickview");$("
").addClass("lsp-hover-doc").html(html).appendTo($content);const $actions=_buildActions(self.client,editor,pos);$actions&&$content.append($actions),Metrics.countEventBatched(Metrics.EVENT_TYPE.LSP,"hover","Ok."+self.client._metricLabel),resolve({start:start,end:end,content:$content})}).fail(function(err){err&&Metrics.countEvent(Metrics.EVENT_TYPE.LSP,"hover","Fail."+self.client._metricLabel),reject()})})},exports.HoverProvider=HoverProvider});