Skip to content

Commit afbad77

Browse files
committed
Create "mix.exs" constant to remove reliance on PackageManager object.
1 parent 084ed1c commit afbad77

File tree

10 files changed

+28
-20
lines changed

10 files changed

+28
-20
lines changed

src/org/elixir_lang/FrameworkDetector.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.elixir_lang.facet.Configuration;
1010
import org.elixir_lang.facet.Type;
1111
import org.jetbrains.annotations.NotNull;
12+
import org.elixir_lang.mix.Project;
1213

1314
public class FrameworkDetector extends FacetBasedFrameworkDetector<Facet, Configuration> {
1415
private static final String ID = "Elixir";
@@ -32,6 +33,6 @@ public FileType getFileType() {
3233
@NotNull
3334
@Override
3435
public ElementPattern<FileContent> createSuitableFilePattern() {
35-
return FileContentPattern.fileContent().withName("mix.exs");
36+
return FileContentPattern.fileContent().withName(Project.MIX_EXS);
3637
}
3738
}

src/org/elixir_lang/credo/inspection_tool/Global.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import com.intellij.psi.PsiManager
2525
import org.elixir_lang.Mix
2626
import org.elixir_lang.credo.Action
2727
import org.elixir_lang.jps.builder.ParametersList
28+
import org.elixir_lang.mix.Project
2829
import org.elixir_lang.notification.setup_sdk.Notifier
2930
import org.elixir_lang.sdk.elixir.Type.Companion.mostSpecificSdk
3031
import java.nio.file.Paths
@@ -48,7 +49,7 @@ class Global : GlobalInspectionTool() {
4849
.getInstance(module)
4950
.contentRoots
5051
.filter { virtualFile ->
51-
virtualFile.findChild("mix.exs") != null
52+
virtualFile.findChild(Project.MIX_EXS) != null
5253
}
5354
.map(VirtualFile::getPath)
5455
.toHashSet()
@@ -113,7 +114,7 @@ class Global : GlobalInspectionTool() {
113114
NotificationType.ERROR
114115
)
115116
.addAction(Action(project))
116-
.notify(project);
117+
.notify(project)
117118
}
118119

119120
// lib/level_web/ui/empty_state.ex:1:11: R: Modules should have a @moduledoc tag.
@@ -160,7 +161,7 @@ class Global : GlobalInspectionTool() {
160161
end = start + 1
161162
} else {
162163
start = lineStartOffset
163-
end = document.getLineEndOffset(lineNumber);
164+
end = document.getLineEndOffset(lineNumber)
164165
}
165166

166167
val refElement = globalContext.refManager.getReference(psiFile)
@@ -216,7 +217,7 @@ class Global : GlobalInspectionTool() {
216217
}
217218
}
218219

219-
private fun String.stripColor(): String = this.replace(Regex("\u001B\\[[;\\d]*m"), "");
220+
private fun String.stripColor(): String = this.replace(Regex("\u001B\\[[;\\d]*m"), "")
220221
private fun String.toHTML(): String = this.replace("\n", "<br/>\n")
221222

222223
override fun isGraphNeeded(): Boolean = true

src/org/elixir_lang/espec/configuration/Producer.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.intellij.psi.*
1111
import org.elixir_lang.espec.Configuration
1212
import org.elixir_lang.espec.Gatherer
1313
import org.elixir_lang.file.containsFileWithSuffix
14+
import org.elixir_lang.mix.Project
1415
import org.elixir_lang.psi.ElixirFile
1516
import org.elixir_lang.sdk.elixir.Type
1617
import org.elixir_lang.sdk.elixir.Type.Companion.mostSpecificSdk
@@ -193,7 +194,7 @@ private fun setupConfigurationFromContextImpl(
193194
}
194195

195196
private fun workingDirectory(directory: PsiDirectory, basePath: String?): String? =
196-
if (directory.findFile("mix.exs") != null) {
197+
if (directory.findFile(Project.MIX_EXS) != null) {
197198
directory.virtualFile.path
198199
} else {
199200
directory.parent?.let { workingDirectory(it, basePath) } ?: basePath
@@ -208,4 +209,3 @@ private fun workingDirectory(element: PsiElement, basePath: String?): String? =
208209

209210
private fun workingDirectory(file: PsiFile, basePath: String?): String? =
210211
workingDirectory(file.containingDirectory, basePath)
211-

src/org/elixir_lang/exunit/configuration/Producer.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import com.intellij.openapi.util.Ref
1010
import com.intellij.psi.*
1111
import org.elixir_lang.exunit.Configuration
1212
import org.elixir_lang.file.containsFileWithSuffix
13+
import org.elixir_lang.mix.Project
1314
import org.elixir_lang.psi.ElixirFile
1415
import org.elixir_lang.sdk.elixir.Type
1516
import org.elixir_lang.sdk.elixir.Type.Companion.mostSpecificSdk
@@ -185,7 +186,7 @@ private fun setupConfigurationFromContextImpl(
185186
}
186187

187188
private fun workingDirectory(directory: PsiDirectory, basePath: String?): String? =
188-
if (directory.findFile("mix.exs") != null) {
189+
if (directory.findFile(Project.MIX_EXS) != null) {
189190
directory.virtualFile.path
190191
} else {
191192
directory.parent?.let { workingDirectory(it, basePath) } ?: basePath

src/org/elixir_lang/formatter/MixFormatExternalFormatProcessor.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import com.intellij.psi.codeStyle.ExternalFormatProcessor
1616
import org.elixir_lang.Elixir.elixirSdkHasErlangSdk
1717
import org.elixir_lang.Mix
1818
import org.elixir_lang.code_style.CodeStyleSettings
19+
import org.elixir_lang.mix.Project
1920
import org.elixir_lang.psi.ElixirFile
2021
import org.elixir_lang.sdk.elixir.Type.Companion.mostSpecificSdk
2122
import java.io.FileNotFoundException
@@ -82,7 +83,7 @@ class MixFormatExternalFormatProcessor : ExternalFormatProcessor {
8283
}
8384
}
8485
?.takeIf { contentRoot ->
85-
contentRoot.findChild("mix.exs") != null
86+
contentRoot.findChild(Project.MIX_EXS) != null
8687
}
8788
?.path
8889

src/org/elixir_lang/mix/PackageManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ package org.elixir_lang.mix
33
import org.elixir_lang.package_manager.DepGatherer
44

55
class PackageManager : org.elixir_lang.PackageManager {
6-
override val fileName: String = "mix.exs"
6+
override val fileName: String = Project.MIX_EXS
77
override fun depGatherer(): DepGatherer = org.elixir_lang.mix.DepGatherer()
88
}

src/org/elixir_lang/mix/Project.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import java.io.EOFException
2121
import java.io.File
2222

2323
object Project {
24+
const val MIX_EXS = "mix.exs"
2425
private val LOG = Logger.getInstance(Project::class.java)
2526

2627
fun addSourceDirToContent(
@@ -150,7 +151,7 @@ object Project {
150151

151152
private fun createImportedOtpApp(appRoot: VirtualFile): OtpApp? =
152153
try {
153-
appRoot.findChild("mix.exs")
154+
appRoot.findChild(MIX_EXS)
154155
} catch (_: EOFException) {
155156
null
156157
}?.let {

src/org/elixir_lang/mix/Watcher.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import com.intellij.psi.PsiManager
1818
import org.elixir_lang.DepsWatcher
1919
import org.elixir_lang.mix.library.Kind
2020
import org.elixir_lang.mix.watcher.TransitiveResolution.transitiveResolution
21+
import org.elixir_lang.mix.Project as MixProject
2122

2223
/**
2324
* Watches the [module]'s `mix.exs` for changes to the `deps`, so that [com.intellij.openapi.roots.Libraries.Library]
@@ -33,7 +34,7 @@ class Watcher(private val project: Project) : BulkFileListener {
3334
}
3435

3536
private fun contentsChanged(event: VFileContentChangeEvent) {
36-
if (event.file.name == PackageManager.fileName) {
37+
if (event.file.name == MixProject.MIX_EXS) {
3738
ModuleUtil.findModuleForFile(event.file, project)?.let { module ->
3839
val eventFileParent = event.file.parent
3940
val shouldSync =

src/org/elixir_lang/mix/project/OpenProcessor.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@ import com.intellij.ide.util.projectWizard.WizardContext
44
import com.intellij.openapi.vfs.VirtualFile
55
import com.intellij.projectImport.ProjectImportBuilder
66
import com.intellij.projectImport.ProjectOpenProcessorBase
7+
import org.elixir_lang.mix.Project
78
import org.elixir_lang.mix.project._import.Builder
89

910
/**
1011
* Created by zyuyou on 15/7/1.
1112
*/
1213
class OpenProcessor : ProjectOpenProcessorBase<Builder>() {
13-
override val supportedExtensions = arrayOf("mix.exs")
14+
override val supportedExtensions = arrayOf(Project.MIX_EXS)
1415

1516
override fun doGetBuilder(): Builder = ProjectImportBuilder.EXTENSIONS_POINT_NAME.findExtensionOrFail(Builder::class.java)
1617

src/org/elixir_lang/mix/project/OtpApp.kt

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import com.intellij.openapi.vfs.VirtualFile
1010
import com.intellij.psi.PsiFileFactory
1111
import com.intellij.psi.ResolveState
1212
import org.elixir_lang.ElixirScriptFileType
13+
import org.elixir_lang.mix.Project
1314
import org.elixir_lang.psi.CallDefinitionClause.isPublicFunction
1415
import org.elixir_lang.psi.CallDefinitionClause.nameArityInterval
1516
import org.elixir_lang.psi.ElixirAccessExpression
@@ -23,7 +24,7 @@ import java.nio.file.Paths
2324
private fun app(appMixFile: VirtualFile): String =
2425
try {
2526
app(appMixFile, text(appMixFile))
26-
} catch (e: IOException) {
27+
} catch (_: IOException) {
2728
appFromPath(appMixFile)
2829
}
2930

@@ -73,17 +74,17 @@ private fun appFromPath(appMixFile: VirtualFile): String = Paths.get(appMixFile.
7374
fun <T> computeReadAction(computable: Computable<T>): T =
7475
ApplicationManager.getApplication().runReadAction(computable)
7576

76-
private fun elixirFile(text: String): ElixirFile = computeReadAction(Computable {
77+
private fun elixirFile(text: String): ElixirFile = computeReadAction {
7778
val defaultProject = ProjectManager.getInstance().defaultProject
7879

7980
PsiFileFactory
80-
.getInstance(defaultProject)
81-
.createFileFromText("mix.exs", ElixirScriptFileType.INSTANCE, text) as ElixirFile
82-
})
81+
.getInstance(defaultProject)
82+
.createFileFromText(Project.MIX_EXS, ElixirScriptFileType.INSTANCE, text) as ElixirFile
83+
}
8384

84-
private fun text(virtualFile: VirtualFile): String = computeReadAction(Computable {
85+
private fun text(virtualFile: VirtualFile): String = computeReadAction {
8586
VfsUtil.loadText(virtualFile)
86-
})
87+
}
8788

8889
class OtpApp(val root: VirtualFile, appMixFile: VirtualFile) {
8990
val deps = mutableSetOf<String>()

0 commit comments

Comments
 (0)