Make logger available to provider

This commit is contained in:
Eric Förster 2019-03-03 17:28:48 +01:00
parent eecd78b94b
commit 790a1bb72d
3 changed files with 12 additions and 4 deletions

View file

@ -26,7 +26,7 @@ dependencies {
implementation "com.fasterxml.jackson.module:jackson-module-kotlin:2.9.+"
implementation "com.overzealous:remark:1.1.0"
implementation "org.zeroturnaround:zt-zip:1.13"
implementation "org.slf4j:slf4j-nop:1.7.25"
implementation "org.slf4j:slf4j-simple:1.7.26"
implementation "me.andrz:brace-expansion:v0.1.3"
implementation "org.scilab.forge:jlatexmath:1.0.7"
implementation "de.undercouch:citeproc-java:1.0.1"

View file

@ -6,6 +6,8 @@ import kotlinx.coroutines.future.await
import kotlinx.coroutines.future.future
import org.eclipse.lsp4j.*
import org.eclipse.lsp4j.jsonrpc.messages.Either
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import texlab.build.BuildConfig
import texlab.build.BuildEngine
import texlab.build.BuildParams
@ -60,6 +62,10 @@ import kotlin.coroutines.CoroutineContext
@ObsoleteCoroutinesApi
class TextDocumentServiceImpl(val workspaceActor: WorkspaceActor) : CustomTextDocumentService, CoroutineScope {
companion object {
private val logger: Logger = LoggerFactory.getLogger("")
}
override val coroutineContext: CoroutineContext = Dispatchers.Default + SupervisorJob()
private lateinit var client: CustomLanguageClient
@ -382,7 +388,7 @@ class TextDocumentServiceImpl(val workspaceActor: WorkspaceActor) : CustomTextDo
suspend fun publishDiagnostics(uri: URI) {
workspaceActor.withWorkspace { workspace ->
val request = FeatureRequest(uri, workspace, Unit)
val request = FeatureRequest(uri, workspace, Unit, logger)
val diagnostics = diagnosticsProvider.get(request)
val params = PublishDiagnosticsParams(uri.toString(), diagnostics)
client.publishDiagnostics(params)
@ -394,7 +400,7 @@ class TextDocumentServiceImpl(val workspaceActor: WorkspaceActor) : CustomTextDo
params: T): List<R> {
return workspaceActor.withWorkspace { workspace ->
val uri = URIHelper.parse(document.uri)
val request = FeatureRequest(uri, workspace, params)
val request = FeatureRequest(uri, workspace, params, logger)
provider.get(request)
}
}

View file

@ -1,11 +1,13 @@
package texlab.provider
import org.slf4j.Logger
import texlab.Workspace
import java.net.URI
data class FeatureRequest<T>(val uri: URI,
val workspace: Workspace,
val params: T) {
val params: T,
val logger: Logger) {
val relatedDocuments = workspace.relatedDocuments(uri)
val document = relatedDocuments.first { it.uri == uri }
}