Skip to content

Commit 60325a1

Browse files
committed
Build: enable warnings as errors
Minor code cleanup and warning sweep.
1 parent becf22a commit 60325a1

File tree

9 files changed

+42
-60
lines changed

9 files changed

+42
-60
lines changed

build.gradle.kts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,20 @@ tasks {
9090
withType<JavaCompile> {
9191
dependsOn(generateLexer, generateParser)
9292

93-
options.encoding = "UTF-8"
93+
options.apply {
94+
compilerArgs.add("-Werror")
95+
encoding = "UTF-8"
96+
}
9497
sourceCompatibility = "17"
9598
targetCompatibility = "17"
9699
}
97100
withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
98101
dependsOn(generateLexer, generateParser)
99102

100-
kotlinOptions.jvmTarget = "17"
103+
kotlinOptions {
104+
jvmTarget = "17"
105+
allWarningsAsErrors = true
106+
}
101107
}
102108

103109
fun getDependencyTask(

src/main/kotlin/com/intellij/plugin/powershell/ide/editor/completion/PowerShellCompletionContributor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ class PowerShellCompletionContributor : CompletionContributor() {
154154
val qType = expr.qualifier?.getType()
155155
if (qType != null && qType != PowerShellType.UNKNOWN) {
156156
val membersProcessor = PowerShellMemberScopeProcessor()
157-
PowerShellResolveUtil.processMembersForType(qType, true, membersProcessor)
157+
PowerShellResolveUtil.processMembersForType(qType, membersProcessor)
158158
val res = membersProcessor.getResult()
159159
res.map { it.element }.filter { it !is PowerShellConstructorDeclarationStatement }.forEach { result.addElement(buildLookupElement(it, context)) }
160160
if (expr.isTypeMemberAccess()) {

src/main/kotlin/com/intellij/plugin/powershell/ide/resolve/PowerShellComponentResolveProcessor.kt

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ import com.intellij.psi.ResolveState
66
import com.intellij.psi.impl.source.resolve.ResolveCache
77
import com.intellij.psi.util.PsiTreeUtil
88

9-
/**
10-
* Andrey 19/08/17.
11-
*/
129
class PowerShellComponentResolveProcessor : ResolveCache.AbstractResolver<PowerShellReferencePsiElement, List<PsiElement>> {
1310

1411
companion object {
@@ -18,16 +15,9 @@ class PowerShellComponentResolveProcessor : ResolveCache.AbstractResolver<PowerS
1815
override fun resolve(ref: PowerShellReferencePsiElement, incompleteCode: Boolean): List<PsiElement> {
1916

2017
// local
21-
val maxScope = getMaxScope(ref.element)
2218
val resolveProcessor = PowerShellComponentScopeProcessor()
23-
PsiTreeUtil.treeWalkUp(resolveProcessor, ref.element, maxScope, ResolveState.initial())
19+
PsiTreeUtil.treeWalkUp(resolveProcessor, ref.element, null, ResolveState.initial())
2420
val results = resolveProcessor.getResult()
2521
return results.toList()
2622
}
27-
28-
private fun getMaxScope(context: PsiElement): PsiElement? {
29-
return null
30-
}
31-
32-
33-
}
23+
}

src/main/kotlin/com/intellij/plugin/powershell/ide/resolve/PowerShellResolveUtil.kt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@ import com.intellij.psi.impl.source.tree.LeafPsiElement
1313
import com.intellij.psi.scope.PsiScopeProcessor
1414
import com.intellij.util.Processor
1515

16-
/**
17-
* Andrey 21/08/17.
18-
*/
19-
2016
object PowerShellResolveUtil {
2117

2218
fun toCandidateInfoArray2(elements: List<PowerShellResolveResult>?): Array<PowerShellResolveResult> {
@@ -77,7 +73,7 @@ object PowerShellResolveUtil {
7773

7874
}
7975

80-
fun processMembersForType(psType: PowerShellType, incompleteCode: Boolean, resolveProcessor: PowerShellMemberScopeProcessor): Boolean {
76+
fun processMembersForType(psType: PowerShellType, resolveProcessor: PowerShellMemberScopeProcessor): Boolean {
8177
val declarationsProvider = Processor<PowerShellMemberScopeProcessor> { processor ->
8278
psType.accept(object : PowerShellTypeVisitor<Boolean>() {
8379

@@ -103,11 +99,10 @@ object PowerShellResolveUtil {
10399
}
104100
}) ?: false
105101
}
106-
return processDeclarations(declarationsProvider, incompleteCode, resolveProcessor)
102+
return processDeclarations(declarationsProvider, resolveProcessor)
107103
}
108104

109105
private fun processDeclarations(declarationsProvider: Processor<PowerShellMemberScopeProcessor>,
110-
incompleteCode: Boolean,
111106
resolveProcessor: PowerShellMemberScopeProcessor): Boolean {
112107
return declarationsProvider.process(resolveProcessor)
113108
}

src/main/kotlin/com/intellij/plugin/powershell/ide/resolve/PowerShellResolver.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@ import com.intellij.psi.impl.source.resolve.ResolveCache
77
import com.intellij.psi.scope.PsiScopeProcessor
88
import com.intellij.psi.util.PsiTreeUtil
99

10-
/**
11-
* Andrey 21/08/17.
12-
*/
1310
class PowerShellResolver<T> : ResolveCache.AbstractResolver<T, List<PowerShellResolveResult>> where T : PowerShellReferencePsiElement {
1411
companion object {
1512
val INSTANCE = PowerShellResolver<PowerShellReferencePsiElement>()
@@ -98,11 +95,7 @@ class PowerShellTypeResolveProcessor(ref: PowerShellReferenceTypeElement) : Powe
9895

9996
class PowerShellQualifiedElementResolveProcessor(ref: PowerShellQualifiedReferenceElement<PowerShellPsiElement>) : PowerShellReferenceResolveProcessor<PowerShellQualifiedReferenceElement<*>>(ref) {
10097
override fun execute(element: PsiElement, state: ResolveState): Boolean {
101-
val qualifier = myRef.qualifier
102-
// val definition = qualifier?.resolve()
103-
10498
return true
10599
}
106-
107100
}
108101

src/main/kotlin/com/intellij/plugin/powershell/lang/lsp/languagehost/EditorServicesLanguageHostStarter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ open class EditorServicesLanguageHostStarter(protected val myProject: Project) :
152152
} else {
153153
val readSock = AFUNIXSocket.newInstance()
154154
val writeSock = AFUNIXSocket.newInstance()
155-
readSock.connect(AFUNIXSocketAddress(File(readPipeName)))
156-
writeSock.connect(AFUNIXSocketAddress(File(writePipeName)))
155+
readSock.connect(AFUNIXSocketAddress.of(File(readPipeName)))
156+
writeSock.connect(AFUNIXSocketAddress.of(File(writePipeName)))
157157
Pair(writeSock.inputStream, readSock.outputStream)
158158
}
159159
}

src/main/kotlin/com/intellij/plugin/powershell/lang/lsp/languagehost/LanguageServerEndpoint.kt

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import com.intellij.collaboration.async.launchNow
77
import com.intellij.ide.actions.ShowSettingsUtilImpl
88
import com.intellij.notification.*
99
import com.intellij.openapi.Disposable
10-
import com.intellij.openapi.diagnostic.Logger
10+
import com.intellij.openapi.diagnostic.logger
1111
import com.intellij.openapi.diagnostic.runAndLogException
1212
import com.intellij.openapi.editor.Editor
1313
import com.intellij.openapi.fileEditor.FileDocumentManager
@@ -51,13 +51,14 @@ import java.util.concurrent.ConcurrentHashMap
5151
import java.util.concurrent.TimeUnit
5252
import java.util.concurrent.atomic.AtomicInteger
5353

54+
private const val MAX_FAILED_STARTS = 2
55+
5456
class LanguageServerEndpoint(
5557
private val coroutineScope: CoroutineScope,
5658
private val languageHostConnectionManager: LanguageHostConnectionManager,
5759
private val project: Project
5860
) : Disposable {
5961

60-
private val LOG: Logger = Logger.getInstance(javaClass)
6162
private var client: PSLanguageClientImpl = PSLanguageClientImpl(project)
6263
private var languageServer: LanguageServer? = null
6364
private val textDocumentServiceQueue: TextDocumentServiceQueue
@@ -69,14 +70,11 @@ class LanguageServerEndpoint(
6970
private val rootPath = project.basePath
7071
private var crashCount: Int = 0
7172
private val myFailedStarts = AtomicInteger()
72-
private val MAX_FAILED_STARTS = 2
7373

7474
override fun toString(): String {
7575
val consoleString = if (isConsoleConnection()) " Console" else ""
7676
return "[PowerShell Editor Services host$consoleString connection, project: $rootPath]"
7777
}
78-
// private val dumpFile = File(FileUtil.toCanonicalPath(PSLanguageHostUtils.getLanguageHostLogsDir() + "/protocol_messages_IJ.log"))
79-
// private var fileWriter: PrintWriter? = null
8078

8179
init {
8280
Disposer.register(PluginProjectRoot.getInstance(project), this)
@@ -100,17 +98,18 @@ class LanguageServerEndpoint(
10098

10199
fun connectEditor(editor: Editor?) {
102100
if (editor == null) {
103-
LOG.warn("Editor is null for $languageServer")
101+
logger.warn("Editor is null for $languageServer")
104102
return
105103
}
106104
val file = FileDocumentManager.getInstance().getFile(editor.document) ?: return
107105
val uri = VfsUtil.toUri(File(file.path))
106+
@Suppress("DeferredResultUnused")
108107
connectedEditors.computeIfAbsent(uri) {
109108
coroutineScope.async {
110109
ensureStarted()
111110
val capabilities = getServerCapabilities()
112111
if (capabilities != null) {
113-
LOG.runAndLogException {
112+
logger.runAndLogException {
114113
val syncOptions: Either<TextDocumentSyncKind, TextDocumentSyncOptions> = capabilities.textDocumentSync
115114
val syncKind: TextDocumentSyncKind? = if (syncOptions.isRight) syncOptions.right.change else syncOptions.left
116115
val mouseListener = EditorMouseListenerImpl()
@@ -132,12 +131,12 @@ class LanguageServerEndpoint(
132131
selectionListener.setManager(manager)
133132
manager.registerListeners()
134133
coroutineScope.launchNow { manager.documentOpened() }
135-
LOG.debug("Created manager for $uri")
134+
logger.debug("Created manager for $uri")
136135
return@async manager
137136
}
138137
}
139138
} else {
140-
LOG.warn("Capabilities are null for $languageServer")
139+
logger.warn("Capabilities are null for $languageServer")
141140
}
142141

143142
return@async null
@@ -171,13 +170,11 @@ class LanguageServerEndpoint(
171170
shutdown?.get(100, TimeUnit.MILLISECONDS)//otherwise lsp4j stream IOException
172171
languageServer?.exit()
173172
} catch (ignored: Exception) {
174-
LOG.debug("PowerShell language host shutdown exception: $ignored")
173+
logger.debug("PowerShell language host shutdown exception: $ignored")
175174
}
176175
languageServer = null
177-
// fileWriter?.close()
178-
// fileWriter = null
179176
destroyLanguageHostProcess()
180-
LOG.info("Connection to PowerShell language host closed for $rootPath.")
177+
logger.info("Connection to PowerShell language host closed for $rootPath.")
181178
}
182179

183180
fun disconnectEditor(uri: URI) {
@@ -216,7 +213,7 @@ class LanguageServerEndpoint(
216213
try {
217214
val (inStream, outStream) = languageHostConnectionManager.establishConnection()
218215
if (inStream == null || outStream == null) {
219-
LOG.warn("Connection creation to PowerShell language host failed for $rootPath")
216+
logger.warn("Connection creation to PowerShell language host failed for $rootPath")
220217
onStartFailure()
221218
return@job null
222219
}
@@ -226,7 +223,7 @@ class LanguageServerEndpoint(
226223

227224
val server = languageServer
228225
if (server == null) {
229-
LOG.warn("Language server is null for $launcher")
226+
logger.warn("Language server is null for $launcher")
230227
onStartFailure()
231228
return@job null
232229
}
@@ -235,26 +232,26 @@ class LanguageServerEndpoint(
235232
launcher.startListening() // NOTE: no need to await here; the future only terminates together with the server
236233
languageHostConnectionManager.connectServer(this@LanguageServerEndpoint)
237234
val result = async { initialize(server) }
238-
LOG.debug("Sent initialize request to server")
235+
logger.debug("Sent initialize request to server")
239236

240237
if (isConsoleConnection()) addRemoteFilesChangeListener()//register vfs listener for saving remote files
241238
return@job result.await()
242239
} catch (e: Exception) {
243240
when (e) {
244241
is PowerShellExtensionError -> {
245-
LOG.warn("PowerShell extension error: ${e.message}")
242+
logger.warn("PowerShell extension error: ${e.message}")
246243
showPowerShellNotConfiguredNotification()
247244
}
248245
is PowerShellExtensionNotFound -> {
249-
LOG.warn("PowerShell extension not found", e)
246+
logger.warn("PowerShell extension not found", e)
250247
showPowerShellNotConfiguredNotification()
251248
}
252249
is PowerShellNotInstalled -> {
253-
LOG.warn("PowerShell is not installed", e)
250+
logger.warn("PowerShell is not installed", e)
254251
showPowerShellNotInstalledNotification()
255252
}
256253
else -> {
257-
LOG.warn("Can not start language server: ", e)
254+
logger.warn("Can not start language server: ", e)
258255
}
259256
}
260257

@@ -322,17 +319,16 @@ class LanguageServerEndpoint(
322319
workspaceClientCapabilities.didChangeConfiguration = DidChangeConfigurationCapabilities()
323320
workspaceClientCapabilities.didChangeWatchedFiles = DidChangeWatchedFilesCapabilities()
324321
workspaceClientCapabilities.executeCommand = ExecuteCommandCapabilities()
325-
workspaceClientCapabilities.workspaceEdit = WorkspaceEditCapabilities(true)
322+
workspaceClientCapabilities.workspaceEdit = WorkspaceEditCapabilities().apply {
323+
documentChanges = true
324+
}
326325
workspaceClientCapabilities.symbol = SymbolCapabilities()
327326
val textDocumentClientCapabilities = TextDocumentClientCapabilities()
328327
textDocumentClientCapabilities.codeAction = CodeActionCapabilities()
329-
//textDocumentClientCapabilities.setCodeLens(new CodeLensCapabilities)
330328
textDocumentClientCapabilities.completion = CompletionCapabilities(CompletionItemCapabilities(false))
331329
textDocumentClientCapabilities.definition = DefinitionCapabilities()
332330
textDocumentClientCapabilities.documentHighlight = DocumentHighlightCapabilities()
333331
textDocumentClientCapabilities.synchronization = SynchronizationCapabilities(false, false, true)
334-
//textDocumentClientCapabilities.setDocumentLink(new DocumentLinkCapabilities)
335-
//textDocumentClientCapabilities.setDocumentSymbol(new DocumentSymbolCapabilities)
336332
textDocumentClientCapabilities.formatting = FormattingCapabilities()
337333
textDocumentClientCapabilities.hover = HoverCapabilities()
338334
textDocumentClientCapabilities.onTypeFormatting = OnTypeFormattingCapabilities()
@@ -342,11 +338,11 @@ class LanguageServerEndpoint(
342338
textDocumentClientCapabilities.signatureHelp = SignatureHelpCapabilities()
343339
textDocumentClientCapabilities.synchronization = SynchronizationCapabilities(true, true, true)
344340
val initParams = InitializeParams()
345-
initParams.rootUri = rootPath
341+
initParams.workspaceFolders = listOf(WorkspaceFolder(rootPath, "root"))
346342
initParams.capabilities = ClientCapabilities(workspaceClientCapabilities, textDocumentClientCapabilities, null)
347343
initParams.initializationOptions = null
348344
val result = server.initialize(initParams).await()
349-
LOG.info("Got server initialize result for $rootPath")
345+
logger.info("Got server initialize result for $rootPath")
350346
return result
351347
}
352348

@@ -359,7 +355,7 @@ class LanguageServerEndpoint(
359355
get() = synchronized(serverInitializationLock) { serverInitialization } != null
360356

361357
fun crashed(e: Throwable) {
362-
LOG.warn("Crashed: $e")
358+
logger.warn("Crashed: $e")
363359
crashCount += 1
364360
if (crashCount < 5) {
365361
val editors = connectedEditors.toMap().keys
@@ -404,3 +400,5 @@ class LanguageServerEndpoint(
404400
}
405401
}
406402
}
403+
404+
private val logger = logger<LanguageServerEndpoint>()

src/main/kotlin/com/intellij/plugin/powershell/psi/impl/PowerShellInvocationExpressionImpl.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ open class PowerShellInvocationExpressionImpl(node: ASTNode) : PowerShellQualifi
3737
val refName = referenceName
3838
if (refName != null) {
3939
val resolveProcessor = PSMethodScopeProcessor(refName)
40-
if (PowerShellResolveUtil.processMembersForType(qType, incompleteCode, resolveProcessor)) return extractResults(resolveProcessor)
40+
if (PowerShellResolveUtil.processMembersForType(qType, resolveProcessor)) return extractResults(resolveProcessor)
4141
}
4242
}
4343
}

src/main/kotlin/com/intellij/plugin/powershell/psi/impl/PowerShellQualifiedReferenceExpression.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ abstract class PowerShellQualifiedReferenceExpression(node: ASTNode) : PowerShel
3838
}
3939
val resolveProcessor = PowerShellResolveUtil.getMemberScopeProcessor(this)
4040
if (resolveProcessor != null && qType != null) {
41-
if (PowerShellResolveUtil.processMembersForType(qType, incompleteCode, resolveProcessor)) return extractResults(resolveProcessor)
41+
if (PowerShellResolveUtil.processMembersForType(qType, resolveProcessor)) return extractResults(resolveProcessor)
4242
}
4343
return super.multiResolve(incompleteCode)
4444
}

0 commit comments

Comments
 (0)