consulo / consulo-unity3d

Frameworks: Unity3D
Apache License 2.0
104 stars 10 forks source link

Consulo not detecting static variables in UPM package if they are in a define symbol #196

Closed TCROC closed 3 years ago

TCROC commented 3 years ago

Consulo is not picking up on my static variables that are in define symbols and in a UPM package.

Example:

image

image

image

That static variable exists in a UPM package. Unity does not throw any errors, but Consulo does not like it.

About:

Consulo: version = 2021.1 build number = 2833 build date = January 14, 2021 Plugins: com.intellij = 2833 com.intellij.git = 1260 com.intellij.xml = 2682 com.intellij.properties = 2787 com.tabnine.TabNine = 3 consulo.dotnet = 3330 consulo.dotnet.mono = 3904 consulo.csharp = 4917 consulo.javascript = 3109 consulo.java = 4423 com.intellij.uiDesigner = 5463 consulo.nunit = 4439 consulo.platform.desktop = 2833 mobi.hsz.idea.gitignore = 415 org.jetbrains.idea.maven = 5385 org.jetbrains.plugins.terminal = 1120 org.jetbrains.plugins.yaml = 2151 consulo.devkit = 8677 consulo.unity3d = 7648 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/build2833 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/build2833/jre/lib jna.tmpdir = /home/t-croc/.consulo_settings/system/tmp sun.java.command = consulo.desktop.bootstrap/consulo.desktop.boot.main.Main --no-recent-projects --json /tmp/5f9f1cdb-9a20-449c-a739-eac269796c26.json 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/build2833/boot java.version.date = 2019-07-16 java.home = /home/t-croc/Applications/Consulo/platform/build2833/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/build2833 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/jna10709726359612852050.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/build2833/bin:/tmp/.mount_UnityHY4Z8HJ/usr/lib::/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib java.vendor = JetBrains s.r.o io.netty.processId = 31119 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-60-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/lib/i386-linux-gnu/sse2:/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/Applications/Consulo 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-60-generic arch = amd64 Env: PATH = /tmp/.mount_UnityHY4Z8HJ:/tmp/.mount_UnityHY4Z8HJ/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/t-croc/.dotnet/tools:/usr/local/bin:/usr/local/sbin:/opt/local/bin:/opt/local/sbin XAUTHORITY = /run/user/1000/gdm/Xauthority XMODIFIERS = @im=ibus XDG_DATA_DIRS = /tmp/.mount_UnityHY4Z8HJ/usr/share/:./share/:/usr/share/gnome:/usr/local/share/:/usr/share/:/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop:/usr/share/gnome/:/usr/local/share/:/usr/share/ 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 = Unity APPIMAGE = /home/t-croc/Applications/UnityHub.AppImage SSH_AGENT_PID = 2992 LD_LIBRARY_PATH = /home/t-croc/Applications/Consulo/platform/build2833/bin:/tmp/.mount_UnityHY4Z8HJ/usr/lib: QT4_IM_MODULE = xim SESSION_MANAGER = local/tcroc-Z390-UD:@/tmp/.ICE-unix/2896,unix/tcroc-Z390-UD:/tmp/.ICE-unix/2896 USERNAME = t-croc LOGNAME = t-croc PWD = /home/t-croc/Applications/Consulo IM_CONFIG_PHASE = 2 GJS_DEBUG_TOPICS = JS ERROR;JS LOG SHELL = /bin/bash CHROME_DESKTOP = UnityHub.desktop GIO_LAUNCHED_DESKTOP_FILE = /home/t-croc/.local/share/applications/alacarte-made-1.desktop GNOME_DESKTOP_SESSION_ID = this-is-deprecated GTK_MODULES = gail:atk-bridge CLUTTER_IM_MODULE = xim __GL_SYNC_TO_VBLANK = 0 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/build2833/boot" -Dconsulo.module.path.boot=true -Dconsulo.home.path="/home/t-croc/Applications/Consulo/platform/build2833" -Didea.home.path="/home/t-croc/Applications/Consulo/platform/build2833" -Didea.properties.file="/home/t-croc/Applications/Consulo/consulo.properties" -Dconsulo.properties.file="/home/t-croc/Applications/Consulo/consulo.properties"
APPDIR = /tmp/.mount_UnityHY4Z8HJ XDG_SESSION_DESKTOP = ubuntu CONSULO_HOME = /home/t-croc/Applications/Consulo/platform/build2833 SHLVL = 0 QT_IM_MODULE = ibus 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/build2833/jre DISPLAY = :1 ROOT_DIR = /home/t-croc/Applications/Consulo OWD = /home/t-croc MAIN_CLASS_NAME = -m consulo.desktop.bootstrap/consulo.desktop.boot.main.Main GDK_BACKEND = x11 GPG_AGENT_INFO = /run/user/1000/gnupg/S.gpg-agent:0:1 ARGV0 = /home/t-croc/Applications/UnityHub.AppImage DESKTOP_SESSION = ubuntu USER = t-croc XDG_MENU_PREFIX = gnome- GIO_LAUNCHED_DESKTOP_FILE_PID = 29619 QT_ACCESSIBILITY = 1 WINDOWPATH = 2 GJS_DEBUG_OUTPUT = stderr SSH_AUTH_SOCK = /run/user/1000/keyring/ssh XDG_SEAT = seat0 MONO_MANAGED_WATCHER = enabled NO_AT_BRIDGE = 1 GSETTINGS_SCHEMA_DIR = /tmp/.mount_UnityHY4Z8HJ/usr/share/glib-2.0/schemas: GNOME_SHELL_SESSION_MODE = ubuntu XDG_VTNR = 2 XDG_RUNTIME_DIR = /run/user/1000 HOME = /home/t-croc

consulo.log

TCROC commented 3 years ago

This also occurs for classes that are in a define symbol in a UPM package. I'm guessing it most likely occurs for anything inside a define symbol in a UPM package.

VISTALL commented 3 years ago

Hello. I pushed some change to C# impl plugin, which collect preprocessor vars from owners (https://github.com/consulo/consulo-csharp/commit/ad480689eb44860f81938527235bde2dec3058c7)

Update from nightly and test. But this var must be set inside project (Unity3D extension)

TCROC commented 3 years ago

It appears that the references to the classes and variables are now working. However, there is now another issue. I'm not sure if it is related to this issue.

image

The property after the second . operator is not being recognized. And when I type, it only gives me the option of "par" similar to this issue: https://github.com/consulo/consulo-csharp/issues/576.

However, this does not happen for all classes. Just this one so far. In some cases the second . operator does give correct references. I will keep testing and see if I find a way to consistently reproduce this.

TCROC commented 3 years ago

It does appear to be related to these define symbols still. I found another place where it occurs.

image

And then when I go to that properties definition I see:

image

So from what I'm seeing now, currently the first . operator is recognized, but a second . operator accessing a property surrounded by the define symbol is not recognized. And I can confirm that the define symbol is enabled in Unity.

TCROC commented 3 years ago

And here is a snip of the other location as well to hopefully help:

image

image

The thing to note about this one is the entire class being accessed is surrounded by the define symbol. So in both cases, the issue is using the . operator on properties surrounded by define symbols.

VISTALL commented 3 years ago

ENABLE_PLAYFABSSERVER_API defined inside project settings?

VISTALL commented 3 years ago

Ah. Looks like it works, but type is not resolved. EntityKey - where this type?

TCROC commented 3 years ago

EntityKey is not in the upm package. EntityKey is defined in a package inside my main project. If that is the case, this is probably an issue that won't be solved until asmdef support is added.

TCROC commented 3 years ago

I think this issue can be closed as the other issue described in here is related to this issue: https://github.com/consulo/consulo-unity3d/issues/186