Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion sandbox/bar/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"private": true,
"packageManager": "[email protected]",
"devDependencies": {
"@biomejs/biome": "2.0.0-beta.1"
"@biomejs/biome": "2.0.0-beta.3"
},
"scripts": {
"check": "biome check"
Expand Down
2 changes: 1 addition & 1 deletion sandbox/foo/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"private": true,
"packageManager": "[email protected]",
"devDependencies": {
"@biomejs/biome": "2.0.0-beta.1"
"@biomejs/biome": "2.0.0-beta.3"
},
"scripts": {
"check": "biome check"
Expand Down
11 changes: 11 additions & 0 deletions sandbox/foo/src/subdir/biome.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
"linter": {
"rules": {
"recommended": true,
"style": {
"useConst": "error"
}
}
}
}
3 changes: 3 additions & 0 deletions sandbox/foo/src/subdir/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
let a = 1;
let b = 2;
let foo = a == b;
8 changes: 8 additions & 0 deletions sandbox/food/biome.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
"linter": {
"rules": {
"recommended": true
}
}
}
11 changes: 11 additions & 0 deletions sandbox/food/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"name": "@biome-intellij-sandbox/foo",
"private": true,
"packageManager": "[email protected]",
"devDependencies": {
"@biomejs/biome": "2.0.0-beta.1"
},
"scripts": {
"check": "biome check"
}
}
3 changes: 3 additions & 0 deletions sandbox/food/src/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
let a = 1;
let b = 2;
let foo = a == b;
98 changes: 96 additions & 2 deletions sandbox/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions sandbox/pnpm-workspace.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
packages:
- foo
- bar
- food
14 changes: 14 additions & 0 deletions src/main/kotlin/com/github/biomejs/intellijbiome/BiomeConfig.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.github.biomejs.intellijbiome

import com.intellij.openapi.vfs.VirtualFile

object BiomeConfig {
const val baseName = "biome"
val validExtensions = listOf("json", "jsonc")

val validFileNames: Set<String> = validExtensions.map { "$baseName.$it" }.toSet()

fun isBiomeConfigFile(file: VirtualFile?): Boolean {
return file != null && validFileNames.contains(file.name)
}
}
47 changes: 12 additions & 35 deletions src/main/kotlin/com/github/biomejs/intellijbiome/BiomePackage.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,27 +18,12 @@ class BiomePackage(private val project: Project) {
private val packageName = "@biomejs/biome"
private val packageDescription = NodePackageDescriptor(packageName)

fun getPackage(virtualFile: VirtualFile?): NodePackage? {
if (virtualFile != null) {
val available = packageDescription.listAvailable(
project,
NodeJsInterpreterManager.getInstance(project).interpreter,
virtualFile,
false,
true
)
if (available.isNotEmpty()) {
return available[0]
}
}

var pkg = packageDescription.findUnambiguousDependencyPackage(project) ?: NodePackage.findDefaultPackage(
project,
packageName,
NodeJsInterpreterManager.getInstance(project).interpreter
)

return pkg
fun getPackage(contextFileOrDirectory: VirtualFile?): NodePackage? {
val interpreter = NodeJsInterpreterManager.getInstance(project).interpreter
val listAvailable = packageDescription.listAvailable(project, interpreter, contextFileOrDirectory, false, true)
return listAvailable.firstOrNull()
?: packageDescription.findUnambiguousDependencyPackage(project)
?: NodePackage.findDefaultPackage(project, packageName, interpreter)
}

fun configPath(): String? {
Expand All @@ -61,24 +46,20 @@ class BiomePackage(private val project: Project) {
}
}

fun binaryPath(
configPath: String?,
virtualFile: VirtualFile,
showVersion: Boolean,
): String? {
fun binaryPath(virtualFile: VirtualFile?): String? {
val settings = BiomeSettings.getInstance(project)
val configurationMode = settings.configurationMode
return when (configurationMode) {
ConfigurationMode.DISABLED -> null // don't try to find the executable path if the configuration file does not exist.
// This will prevent start LSP and formatting in case if biome is not used in the project.
ConfigurationMode.AUTOMATIC -> if (configPath != null || showVersion) findBiomeExecutable(virtualFile) else null // if configuration mode is manual, return the executable path if it is not empty string.
ConfigurationMode.AUTOMATIC -> findBiomeExecutable(virtualFile) // if configuration mode is manual, return the executable path if it is not empty string.
// Otherwise, try to find the executable path.
ConfigurationMode.MANUAL -> settings.executablePath
}
}

private fun findBiomeExecutable(virtualFile: VirtualFile?): String? {
val path = getPackage(virtualFile)?.getAbsolutePackagePathToRequire(project)
private fun findBiomeExecutable(contextFileOrDirectory: VirtualFile?): String? {
val path = getPackage(contextFileOrDirectory)?.getAbsolutePackagePathToRequire(project)
if (path != null) {
return Paths.get(path, "bin/biome").toString()
}
Expand All @@ -92,12 +73,8 @@ class BiomePackage(private val project: Project) {
return null
}

val processHandler =
BiomeTargetRunBuilder(project)
.getBuilder(binaryPath)
.addParameters(listOf(ProcessCommandParameter.Value("--version")))
.build()
.startProcess()
val processHandler = BiomeTargetRunBuilder(project).getBuilder(binaryPath)
.addParameters(listOf(ProcessCommandParameter.Value("--version"))).build().startProcess()

return runCatching {
val result = runProcessFuture(processHandler).await()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ package com.github.biomejs.intellijbiome.actions
import com.github.biomejs.intellijbiome.BiomeBundle
import com.github.biomejs.intellijbiome.BiomeIcons
import com.github.biomejs.intellijbiome.services.BiomeServerService
import com.github.biomejs.intellijbiome.services.BiomeServerService.Feature
import com.github.biomejs.intellijbiome.settings.BiomeConfigurable
import com.github.biomejs.intellijbiome.settings.BiomeSettings
import com.github.biomejs.intellijbiome.settings.Feature
import com.intellij.notification.NotificationAction
import com.intellij.notification.NotificationGroupManager
import com.intellij.notification.NotificationType
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.github.biomejs.intellijbiome.actions
import com.github.biomejs.intellijbiome.BiomeBundle
import com.github.biomejs.intellijbiome.BiomeIcons
import com.github.biomejs.intellijbiome.services.BiomeServerService
import com.github.biomejs.intellijbiome.services.BiomeServerService.Feature
import com.github.biomejs.intellijbiome.settings.Feature
import com.github.biomejs.intellijbiome.settings.BiomeConfigurable
import com.github.biomejs.intellijbiome.settings.BiomeSettings
import com.intellij.notification.NotificationAction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import com.intellij.execution.process.ProcessEvent
import com.intellij.execution.process.ProcessOutput
import java.util.concurrent.CompletableFuture

class ProcessResult( val processOutput: ProcessOutput)
class ProcessResult(val processOutput: ProcessOutput)


fun runProcessFuture(handler: OSProcessHandler): CompletableFuture<ProcessResult> {
Expand Down
Loading