Skip to content

Commit

Permalink
support dynamic port for Godot 4.3+
Browse files Browse the repository at this point in the history
  • Loading branch information
van800 committed Jan 12, 2024
1 parent 6a43fcb commit 65c9f6e
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 7 deletions.
10 changes: 5 additions & 5 deletions resharper/src/Application/UI/Options/GodotOptionsPage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,17 +53,17 @@ private void AddNetworkSection()

// AddTextBox(ourHostNameAccessor, "Host"); // host is always localhot, lets not allow changing it.

// todo: implement later
// var useDynamic = AddBoolOption(ourUseDynamicPort, "Use a random free port",
// toolTipText: "Only supported by the future Godot builds");
// Godot 4.3 and later
var useDynamic = AddBoolOption(ourUseDynamicPort, "Use a random free port",
toolTipText: "Only supported by the Godot 4.3+");

var portOption = AddIntOption(ourHostPortAccessor, "Port");

AddBinding(portOption, BindingStyle.IsVisibleProperty, ourUseDynamicPort, enable => !enable);
AddBinding(portOption, BindingStyle.IsEnabledProperty, ourLanguageServerConnectionMode,
mode => mode is not LanguageServerConnectionMode.Never);
// AddBinding(useDynamic, BindingStyle.IsEnabledProperty, ourLanguageServerConnectionMode,
// mode => mode is LanguageServerConnectionMode.StartEditorHeadless);
AddBinding(useDynamic, BindingStyle.IsEnabledProperty, ourLanguageServerConnectionMode,
mode => mode is LanguageServerConnectionMode.StartEditorHeadless);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import com.jetbrains.rd.platform.util.idea.LifetimedService
import com.jetbrains.rd.util.reactive.adviseNotNull
import com.jetbrains.rider.model.godot.frontendBackend.LanguageServerConnectionMode
import com.jetbrains.rider.plugins.godot.GodotProjectDiscoverer
import com.jetbrains.rider.util.NetUtils
import java.io.IOException
import java.net.InetSocketAddress
import java.net.Socket
Expand Down Expand Up @@ -43,7 +44,7 @@ class GodotLspServerSupportProvider : LspServerSupportProvider {
val nested = project.lifetime.createNested()
discoverer.lspConnectionMode.adviseNotNull(nested) { lspConnectionMode ->
if (lspConnectionMode == LanguageServerConnectionMode.Never) return@adviseNotNull
discoverer.remoteHostPort.adviseNotNull(nested) { remoteHostPort ->
discoverer.useDynamicPort.adviseNotNull(nested) { useDynamicPort ->
discoverer.godotDescriptor.adviseNotNull(nested) {
discoverer.godotPath.adviseNotNull(nested) {
// todo: restore
Expand Down Expand Up @@ -90,7 +91,8 @@ class GodotLspServerSupportProvider : LspServerSupportProvider {

val discoverer = GodotProjectDiscoverer.getInstance(project)
val lspConnectionMode by lazy { discoverer.lspConnectionMode.value }
val remoteHostPort by lazy { discoverer.remoteHostPort.value }
val remoteHostPort by lazy { if (useDynamicPort!!) NetUtils.findFreePort(500050, setOf()) else discoverer.remoteHostPort.value }
val useDynamicPort by lazy { discoverer.useDynamicPort.value }

override fun isSupportedFile(file: VirtualFile) = Util.isSupportedFile(file)
override fun createCommandLine(): GeneralCommandLine {
Expand Down

0 comments on commit 65c9f6e

Please sign in to comment.