consulo-unity3d
consulo-unity3d copied to clipboard
Consulo Assembly Definitions Not Working
A repo for reproducing this bug can be found here: https://github.com/TCROC/ConsuloBug-Asmdef
Consulo is not following Unity's Assembly Definitions.
As can be seen, "Asmdef1" does not reference "Asmdef2" and Unity is throwing compiler errors.
However, Consulo is allowing me to reference SomeScript2 from SomeScript1 without errors even though it is an assembly that is not referenced by "Asmdef1"
OS: Ubuntu 18.04 Unity Version: 2019.4.14f1 Unity Consulo UPM Version: 2.4.0 consulo.log
Consulo About
Consulo:
version = 2020.12
build number = 2748
build date = December 3, 2020
Plugins:
com.intellij = 2748
com.intellij.git = 1230
com.intellij.regexp = 1180
com.intellij.spellchecker = 1187
com.intellij.xml = 2653
com.intellij.properties = 2757
consulo.dotnet = 3275
consulo.dotnet.microsoft = 3805
consulo.dotnet.mono = 3818
consulo.csharp = 4815
consulo.javascript = 3062
consulo.library.batik = 484
com.intellij.images = 1875
consulo.library.flexmark = 484
com.intellij.tasks = 4550
consulo.msbuild = 4099
consulo.nuget = 4330
consulo.nunit = 4347
consulo.opencover = 3244
consulo.platform.desktop = 2748
mobi.hsz.idea.gitignore = 385
org.jetbrains.plugins.github = 4224
org.jetbrains.plugins.terminal = 1091
org.jetbrains.plugins.yaml = 2123
consulo.unity3d = 7490
JVM:
vendor = JetBrains s.r.o
version = 11.0.4
runtimeVersion = 11.0.4+10-b304.77
locale = en_US
JVM Env:
__idea.mac.env.lock = unlocked
awt.toolkit = sun.awt.X11.XToolkit
java.specification.version = 11
sun.cpu.isalist =
sun.jnu.encoding = UTF-8
log4j.shutdownHookEnabled = false
sun.arch.data.model = 64
consulo.properties.file = /home/t-croc/Applications/Consulo/consulo.properties
sun.font.fontmanager = sun.awt.X11FontManager
idea.properties.file = /home/t-croc/Applications/Consulo/consulo.properties
java.vendor.url = https://www.jetbrains.com/
consulo.home.path = /home/t-croc/Applications/Consulo/platform/build2748
sun.java2d.uiScale.enabled = true
log4j2.messageFactory = org.apache.logging.log4j.message.SimpleMessageFactory
sun.io.useCanonCaches = false
sun.boot.library.path = /home/t-croc/Applications/Consulo/platform/build2748/jre/lib
jna.tmpdir = /home/t-croc/.consulo_settings/system/tmp
sun.java.command = consulo.desktop.bootstrap/consulo.desktop.boot.main.Main
jdk.debug = release
sun.awt.exception.handler = com.intellij.openapi.application.impl.AWTExceptionHandler
java.specification.vendor = Oracle Corporation
jdk.module.path = /home/t-croc/Applications/Consulo/platform/build2748/boot
java.version.date = 2019-07-16
java.home = /home/t-croc/Applications/Consulo/platform/build2748/jre
file.separator = /
java.vm.compressedOopsMode = 32-bit
line.separator = \n
java.specification.name = Java Platform API Specification
java.vm.specification.vendor = Oracle Corporation
idea.home.path = /home/t-croc/Applications/Consulo/platform/build2748
jdk.module.main.class = consulo.desktop.boot.main.Main
awt.useSystemAAFontSettings = lcd
sun.management.compiler = HotSpot 64-Bit Tiered Compilers
jb.restart.code = 88
java.runtime.version = 11.0.4+10-b304.77
user.name = t-croc
javax.swing.rebaseCssSizeMap = true
sun.java2d.pmoffscreen = false
sun.awt.noerasebackground = true
file.encoding = UTF-8
sun.java2d.noddraw = true
jnidispatch.path = /home/t-croc/.consulo_settings/system/tmp/jna11270038589669586487.tmp
idea.popup.weight = heavy
jna.loaded = true
java.io.tmpdir = /tmp
java.version = 11.0.4
java.vm.specification.name = Java Virtual Machine Specification
java.awt.printerjob = sun.print.PSPrinterJob
sun.os.patch.level = unknown
consulo.vm.options.file = /home/t-croc/Applications/Consulo/consulo64.vmoptions
java.library.path = /home/t-croc/Applications/Consulo/platform/build2748/bin::/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
java.vendor = JetBrains s.r.o
io.netty.processId = 54131
sun.io.unicode.encoding = UnicodeLittle
java.rmi.server.disableHttp = true
io.netty.machineId = 28:f0:76:ff:fe:16:65:0e
java.util.concurrent.ForkJoinPool.common.parallelism = 8
sun.desktop = gnome
java.class.path =
sun.awt.enableExtraMouseButtons = true
java.vm.vendor = JetBrains s.r.o
consulo.module.path.boot = true
user.timezone = America/New_York
jb.vmOptionsFile = /home/t-croc/Applications/Consulo/consulo64.vmoptions
idea.no.launcher = false
swing.bufferPerWindow = false
os.name = Linux
java.vm.specification.version = 11
sun.java.launcher = SUN_STANDARD
user.country = US
sun.cpu.endian = little
user.home = /home/t-croc
user.language = en
idea.cycle.buffer.size = 1024
java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment
jdk.module.main = consulo.desktop.bootstrap
idea.max.intellisense.filesize = 2500
sun.java2d.d3d = false
java.net.preferIPv4Stack = true
path.separator = :
idea.use.default.antialiasing.in.editor = false
os.version = 5.4.0-56-generic
jna.nosys = true
java.runtime.name = OpenJDK Runtime Environment
sun.nio.ch.bugLevel =
java.vm.name = OpenJDK 64-Bit Server VM
jna.platform.library.path = /usr/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu:/lib64:/usr/lib:/lib:/usr/lib/i386-linux-gnu:/lib/i386-linux-gnu:/lib32:/usr/lib32
java.vendor.url.bug = https://youtrack.jetbrains.com
java.util.concurrent.ForkJoinPool.common.threadFactory = consulo.bootstrap.concurrent.IdeaForkJoinWorkerThreadFactory
user.dir = /home/t-croc
os.arch = amd64
io.netty.serviceThreadPrefix = Netty
idea.dynamic.classpath = false
java.vm.info = mixed mode
java.vm.version = 11.0.4+10-b304.77
java.rmi.server.hostname = localhost
sun.awt.datatransfer.timeout = 2000
java.class.version = 55.0
OS:
name = Linux
version = 5.4.0-56-generic
arch = amd64
Env:
PATH = /usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/t-croc/.dotnet/tools
XAUTHORITY = /run/user/1000/gdm/Xauthority
XMODIFIERS = @im=ibus
XDG_DATA_DIRS = /usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
GDMSESSION = ubuntu
MANDATORY_PATH = /usr/share/gconf/ubuntu.mandatory.path
TEXTDOMAINDIR = /usr/share/locale/
GTK_IM_MODULE = ibus
DBUS_SESSION_BUS_ADDRESS = unix:path=/run/user/1000/bus
DEFAULTS_PATH = /usr/share/gconf/ubuntu.default.path
XDG_CURRENT_DESKTOP = ubuntu:GNOME
SSH_AGENT_PID = 1664
LD_LIBRARY_PATH = /home/t-croc/Applications/Consulo/platform/build2748/bin:
QT4_IM_MODULE = xim
SESSION_MANAGER = local/tcroc-Z390-UD:@/tmp/.ICE-unix/1568,unix/tcroc-Z390-UD:/tmp/.ICE-unix/1568
USERNAME = t-croc
LOGNAME = t-croc
PWD = /home/t-croc
IM_CONFIG_PHASE = 2
GJS_DEBUG_TOPICS = JS ERROR;JS LOG
SHELL = /bin/bash
GIO_LAUNCHED_DESKTOP_FILE = /home/t-croc/.local/share/applications/alacarte-made-3.desktop
GNOME_DESKTOP_SESSION_ID = this-is-deprecated
GTK_MODULES = gail:atk-bridge
CLUTTER_IM_MODULE = xim
TEXTDOMAIN = im-config
ALL_JVM_ARGS = --add-opens=java.desktop/sun.awt=consulo.container.impl --add-opens=java.desktop/sun.awt.image=consulo.container.impl --add-opens=java.desktop/sun.java2d=consulo.container.impl --add-opens=java.desktop/sun.font=consulo.container.impl --add-opens=java.desktop/java.awt=consulo.container.impl --add-opens=java.desktop/javax.swing=consulo.container.impl --add-opens=java.desktop/javax.swing.plaf.basic=consulo.container.impl --add-opens=java.base/java.lang=consulo.container.impl --add-opens=java.desktop/javax.swing.text.html=consulo.container.impl --add-opens=java.desktop/java.awt.peer=consulo.container.impl -Xms512m -Xmx1500m -XX:ReservedCodeCacheSize=240m -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+UseCodeCacheFlushing -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -XX:+HeapDumpOnOutOfMemoryError -Dawt.useSystemAAFontSettings=lcd -Djb.vmOptionsFile="/home/t-croc/Applications/Consulo/consulo64.vmoptions" -Dconsulo.vm.options.file="/home/t-croc/Applications/Consulo/consulo64.vmoptions" -p "/home/t-croc/Applications/Consulo/platform/build2748/boot" -Dconsulo.module.path.boot=true -Dconsulo.home.path="/home/t-croc/Applications/Consulo/platform/build2748" -Didea.home.path="/home/t-croc/Applications/Consulo/platform/build2748" -Didea.properties.file="/home/t-croc/Applications/Consulo/consulo.properties" -Dconsulo.properties.file="/home/t-croc/Applications/Consulo/consulo.properties"
XDG_SESSION_DESKTOP = ubuntu
CONSULO_HOME = /home/t-croc/Applications/Consulo/platform/build2748
SHLVL = 0
QT_IM_MODULE = xim
XDG_CONFIG_DIRS = /etc/xdg/xdg-ubuntu:/etc/xdg
LANG = en_US.UTF-8
XDG_SESSION_ID = 3
XDG_SESSION_TYPE = x11
JDK = /home/t-croc/Applications/Consulo/platform/build2748/jre
DISPLAY = :1
ROOT_DIR = /home/t-croc/Applications/Consulo
MAIN_CLASS_NAME = -m consulo.desktop.bootstrap/consulo.desktop.boot.main.Main
GPG_AGENT_INFO = /run/user/1000/gnupg/S.gpg-agent:0:1
DESKTOP_SESSION = ubuntu
USER = t-croc
XDG_MENU_PREFIX = gnome-
GIO_LAUNCHED_DESKTOP_FILE_PID = 28114
QT_ACCESSIBILITY = 1
WINDOWPATH = 2
GJS_DEBUG_OUTPUT = stderr
SSH_AUTH_SOCK = /run/user/1000/keyring/ssh
XDG_SEAT = seat0
GNOME_SHELL_SESSION_MODE = ubuntu
XDG_VTNR = 2
XDG_RUNTIME_DIR = /run/user/1000
HOME = /home/t-croc
Hello. Consulo fully ignore .asmdef. For now this issue have low priority. Maybe later
Ok. What would need to be changed / added for this to be implemented?
Just my time, which limited :)
Haha I understand that. Where is the code that you would have to start modifying? I also don't have much free time, but I might take a look if I get a spare moment.
And also, would it be possible to implement through the .csproj files that Unity generates? Or is it better to use the .asmdef files directly?
There long story - how Consulo work with Unity Project. After some time i decided to import projects without Unity or VS project files (some long code here https://github.com/consulo/consulo-unity3d/blob/master/plugin/src/main/java/consulo/unity3d/projectImport/Unity3dProjectImporter.java#L276)
About VS files.
First of all - when Unity generate them, it's try generate with MSBuild restriction. For example - it's don't known about full Unity Project. Not "source" files will be ignored. Unity will try reference to built-in system .NET framework, because it can't create reference to self framework.
I can't write it in a simple post:)
Second. MSBuild project files (vs files) can't not be loaded correctly without MSBuild runtime.
I have plan for MSBuild plugin implementation (https://github.com/consulo/incubating-consulo-msbuild) . Also need my time)
Sounds good! Thanks for the helpful links! I'll let you know if I get around to trying to tackle the asmdef feature. I'll also be curious to see how you implement because from a performance standpoint, your implementation is much more efficient than VS Code Omnisharp. I was originally using that, but it just takes waaaayyyy too long to load our projects (minutes). Consulo loads up in a matter of seconds! On our largest project! :) Very impressive.
There some issues with loading big projects, like Consulo try to analyze audio files (or some big unknown files). I'm planning add audio plugin in future (https://github.com/orgs/consulo/projects/14)
I'm also Unity dev, I need it :)
Awesome! :) Yep that's why we are using it :). I saw someone write a nice post about Consulo on Reddit. That's how we discovered it. I'll link in the post if I find it.