Giter Club home page Giter Club logo

idlua's Introduction

Hi there 👋

idlua's People

Contributors

doxxx avatar internetisalie avatar jacobdufault avatar johnthagen avatar juntalis avatar jupjohn avatar spoonman avatar sylvanaar avatar yscik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

idlua's Issues

CCE in Lua 1.0.124

I'm not sure what I did, I opned the LuaJ toolpane on a non Lua project.

java.lang.ClassCastException: class javax.swing.text.AbstractDocument$DefaultDocumentEventUndoableWrapper cannot be cast to class javax.swing.text.AbstractDocument$DefaultDocumentEvent (javax.swing.text.AbstractDocument$DefaultDocumentEventUndoableWrapper and javax.swing.text.AbstractDocument$DefaultDocumentEvent are in module java.desktop of loader 'bootstrap')
	at jsyntaxpane.CompoundUndoMan.undoableEditHappened(CompoundUndoMan.java:61)
	at java.desktop/javax.swing.text.AbstractDocument.fireUndoableEditUpdate(AbstractDocument.java:293)
	at java.desktop/javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:761)
	at java.desktop/javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:716)
	at java.desktop/javax.swing.text.PlainDocument.insertString(PlainDocument.java:131)
	at se.krka.kahlua.j2se.interpreter.OutputTerminal.append(OutputTerminal.java:136)
	at se.krka.kahlua.j2se.interpreter.OutputTerminal.appendInfo(OutputTerminal.java:119)
	at com.sylvanaar.idea.Lua.luaj.LuaJInterpreterWindowFactory.createToolWindowContent(LuaJInterpreterWindowFactory.java:40)
	at com.intellij.openapi.wm.impl.ToolWindowImpl.createContentIfNeeded$intellij_platform_ide_impl(ToolWindowImpl.kt:495)
	at com.intellij.openapi.wm.impl.ToolWindowImpl.scheduleContentInitializationIfNeeded$intellij_platform_ide_impl(ToolWindowImpl.kt:475)
	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.doShowWindow(ToolWindowManagerImpl.kt:921)
	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.showToolWindowImpl(ToolWindowManagerImpl.kt:867)
	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.activateToolWindow(ToolWindowManagerImpl.kt:578)
	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.activateToolWindow$default(ToolWindowManagerImpl.kt:561)
	at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.activated$intellij_platform_ide_impl(ToolWindowManagerImpl.kt:1773)
	at com.intellij.openapi.wm.impl.StripeButton$1.actionPerformed(StripeButton.java:62)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
	at java.desktop/javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:401)
	at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:270)
	at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6650)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
	at com.intellij.openapi.wm.impl.StripeButton.processMouseEvent(StripeButton.java:312)
	at java.desktop/java.awt.Component.processEvent(Component.java:6415)
	at java.desktop/java.awt.Container.processEvent(Container.java:2263)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5025)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4857)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4857)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:974)
	at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:912)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:844)
	at com.intellij.ide.IdeEventQueue.lambda$null$8(IdeEventQueue.java:449)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:741)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:502)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Here's my IJ version

IntelliJ IDEA 2020.1.2 Preview (Ultimate Edition)
Build #IU-201.7846.6, built on May 13, 2020
Licensed to Comuto SA / Brice Dutheil
Subscription is active until January 22, 2021
Runtime version: 11.0.7+10-b765.53 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 10.15.4
GC: ParNew, ConcurrentMarkSweep
Memory: 1981M
Cores: 8
Registry: ide.intellij.laf.enable.animation=true, ide.balloon.shadow.size=0
Non-Bundled Plugins: String Manipulation, com.github.b3er.idea.plugins.arc.browser, com.github.weisj.darkmode, Lua, GrepConsole, JOL, Lombook Plugin, com.intellij.bigdecimal-folding, org.jetbrains.plugins.spotbugs, com.mallowigi.idea, com.thvardhan.gradianto, intellij-clock, jd-intellij, name.kropp.intellij.makefile, org.intellij.plugins.hcl, org.jetbrains.plugins.go-template, com.intellij.kubernetes, Pythonid, org.jetbrains.kotlin, izhangzhihao.rainbow.brackets, com.jetbrains.packagesearch.intellij-plugin, org.asciidoctor.intellij.asciidoc, org.toml.lang, org.rust.lang

Support IDEA 2016.1

I just upgraded to:
IntelliJ IDEA 2016.1
Build #IU-145.258, built on March 17, 2016

and I get the following error:

Unknown Module Type
           Cannot determine module type ("LUA_MODULE") for the following module:"nn-depparse"
           The module will be treated as a Unknown module.

and no Lua support.

Please update to support the newest build of IDEA :)

Release for IDEA 12

I use IDLua a lot and now that I've switched to IDEA 12 I can't find it in the plugin repo. Can you please make a release?

Plugin sources don't correspond to the version that's published to the Marketplace

While investigating issue #22, I've found some contradictions between version published to the Marketplace (1.0.127) and the sources in the repository.

The main difference seems to be that certain components are commented-out on GitHub:

<!-- <component>-->
<!-- <implementation-class>com.sylvanaar.idea.Lua.sdk.KahluaSdk</implementation-class>-->
<!-- </component>-->
<!-- <component>-->
<!-- <implementation-class>com.sylvanaar.idea.Lua.sdk.LuaJSdk</implementation-class>-->
<!-- </component>-->
<!--<component>-->
<!--<implementation-class>com.sylvanaar.idea.Lua.LuaLoggerManager</implementation-class>-->
<!--</component>-->

The same components are enabled in the plugin.xml of the published plugin version.

⚠Notably, disabling these components (i.e. using the version of plugin.xml from GitHub) lets the plugin to work in Rider. So maybe you really should publish a version without these components?

(namely, it's the com.sylvanaar.idea.Lua.LuaLoggerManager which causes a loading error in Rider; the reason for that is unknown yet, though is described in #27)

Another issue I've found is that build.gradle uses ideaVersion property:

version ideaVersion

This property is never defined in the repository, so one has to guess what version they should substitute to build the plugin (and I never was able to generate the same artifact as the one published on the Marketplace from the current sources).

AssertionError

IDEA 163.7743

com.sylvanaar.idea.Lua.run.kahlua.KahluaExecutionResult@1eb51c8b

java.lang.AssertionError: com.sylvanaar.idea.Lua.run.kahlua.KahluaExecutionResult@1eb51c8b
	at com.intellij.execution.impl.DefaultJavaProgramRunner.addDefaultActions(DefaultJavaProgramRunner.java:116)
	at com.intellij.execution.impl.DefaultJavaProgramRunner.doExecute(DefaultJavaProgramRunner.java:104)
	at com.intellij.execution.runners.GenericProgramRunner$1.execute(GenericProgramRunner.java:43)
	at com.intellij.execution.impl.ExecutionManagerImpl.lambda$startRunProfile$3(ExecutionManagerImpl.java:381)
	at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:91)
	at com.intellij.openapi.application.TransactionGuardImpl.access$300(TransactionGuardImpl.java:41)
	at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:76)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:417)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:401)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:843)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:679)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:391)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

IndexNotReadyException in PhpStorm 2020.1

I'm getting the following exception after installing the plugin in PhpStorm 2020.1. It appears as soon as PhpStorm opens.

com.intellij.openapi.project.IndexNotReadyException: Please change caller according to com.intellij.openapi.project.IndexNotReadyException documentation
	at com.intellij.openapi.project.IndexNotReadyException.create(IndexNotReadyException.java:81)
	at com.intellij.util.indexing.FileBasedIndexImpl.handleDumbMode(FileBasedIndexImpl.java:715)
	at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:665)
	at com.intellij.psi.stubs.StubIndexImpl.getContainingIds(StubIndexImpl.java:540)
	at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:396)
	at com.intellij.psi.stubs.StubIndex.processElements(StubIndex.java:51)
	at com.intellij.psi.stubs.StubIndex.get(StubIndex.java:41)
	at com.intellij.psi.stubs.AbstractStubIndex.get(AbstractStubIndex.java:22)
	at com.sylvanaar.idea.Lua.lang.psi.stubs.index.LuaGlobalDeclarationIndex.get(LuaGlobalDeclarationIndex.java:47)
	at com.sylvanaar.idea.Lua.lang.psi.resolve.LuaResolver._resolve(LuaResolver.java:62)
	at com.sylvanaar.idea.Lua.lang.psi.resolve.LuaResolver.resolve(LuaResolver.java:24)
	at com.sylvanaar.idea.Lua.lang.psi.resolve.LuaResolver.resolve(LuaResolver.java:18)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolve$1(ResolveCache.java:152)
	at com.intellij.openapi.util.Computable.get(Computable.java:17)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$3(ResolveCache.java:225)
	at com.intellij.openapi.util.RecursionManager$1.doPreventingRecursion(RecursionManager.java:113)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:72)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:202)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:152)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:167)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:160)
	at com.sylvanaar.idea.Lua.lang.psi.impl.symbols.LuaReferenceElementImpl.resolve(LuaReferenceElementImpl.java:128)
	at com.sylvanaar.idea.Lua.lang.psi.impl.symbols.LuaReferenceElementImpl.getLuaType(LuaReferenceElementImpl.java:60)
	at com.sylvanaar.idea.Lua.lang.psi.impl.expressions.LuaFunctionCallExpressionImpl.getLuaType(LuaFunctionCallExpressionImpl.java:90)
	at com.sylvanaar.idea.Lua.lang.psi.util.LuaAssignmentUtil.transferTypes(LuaAssignmentUtil.java:90)
	at com.sylvanaar.idea.Lua.lang.psi.impl.statements.LuaLocalDefinitionStatementImpl.inferTypes(LuaLocalDefinitionStatementImpl.java:151)
	at com.sylvanaar.idea.Lua.lang.psi.LuaPsiManager$InferenceQueue$1.run(LuaPsiManager.java:291)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:869)
	at com.sylvanaar.idea.Lua.lang.psi.LuaPsiManager$InferenceQueue.consume(LuaPsiManager.java:276)
	at com.sylvanaar.idea.Lua.lang.psi.LuaPsiManager$InferenceQueue.consume(LuaPsiManager.java:255)
	at com.intellij.util.concurrency.QueueProcessor.lambda$null$0(QueueProcessor.java:80)
	at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:232)
	at com.intellij.util.concurrency.QueueProcessor.lambda$wrappingProcessor$1(QueueProcessor.java:80)
	at com.intellij.util.concurrency.QueueProcessor.lambda$null$3(QueueProcessor.java:213)
	at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:232)
	at com.intellij.util.concurrency.QueueProcessor.lambda$startProcessing$4(QueueProcessor.java:213)
	at com.intellij.util.RunnableCallable.call(RunnableCallable.java:20)
	at com.intellij.util.RunnableCallable.call(RunnableCallable.java:11)
	at com.intellij.openapi.application.impl.ApplicationImpl$1.call(ApplicationImpl.java:255)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)
java.lang.Throwable
	at com.intellij.openapi.project.DumbServiceImpl.queueAsynchronousTask(DumbServiceImpl.java:324)
	at com.intellij.openapi.project.DumbServiceImpl.queueTask(DumbServiceImpl.java:300)
	at com.intellij.openapi.roots.impl.ProjectRootManagerComponent.synchronizeRoots(ProjectRootManagerComponent.java:315)
	at com.intellij.openapi.roots.impl.ProjectRootManagerComponent.fireRootsChangedEvent(ProjectRootManagerComponent.java:214)
	at com.intellij.openapi.roots.impl.ProjectRootManagerImpl.fireRootsChanged(ProjectRootManagerImpl.java:426)
	at com.intellij.openapi.roots.impl.ProjectRootManagerImpl.access$200(ProjectRootManagerImpl.java:38)
	at com.intellij.openapi.roots.impl.ProjectRootManagerImpl$BatchSession.rootsChanged(ProjectRootManagerImpl.java:97)
	at com.intellij.openapi.roots.impl.ProjectRootManagerImpl.makeRootsChange(ProjectRootManagerImpl.java:369)
	at com.jetbrains.php.config.library.PhpAdditionalLibraryManager.lambda$null$5(PhpAdditionalLibraryManager.java:191)
	at com.intellij.openapi.application.WriteAction.run(WriteAction.java:102)
	at com.jetbrains.php.config.library.PhpAdditionalLibraryManager.lambda$fireLibraryChanged$6(PhpAdditionalLibraryManager.java:191)
	at com.intellij.openapi.project.DumbServiceImpl.unsafeRunWhenSmart(DumbServiceImpl.java:283)
	at com.intellij.openapi.project.DumbServiceImpl.lambda$runWhenSmart$0(DumbServiceImpl.java:271)
	at com.intellij.ide.startup.impl.StartupManagerImpl.lambda$runWhenProjectIsInitialized$9(StartupManagerImpl.java:479)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:201)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:310)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:80)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:128)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:46)
	at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:184)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:974)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:847)
	at com.intellij.ide.IdeEventQueue.lambda$null$8(IdeEventQueue.java:449)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:741)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:496)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

NoClassDefFoundError: JdkChooserPanel with IntelliJ 2020.1

When using the menu item File->New->Project nothing happens at all. In the error reporter IntelliJ shows

Exception in plugin Lua (1.0.124)

java.lang.NoClassDefFoundError: com/intellij/ide/util/projectWizard/JdkChooserPanel
	at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3166)
	at java.base/java.lang.Class.getDeclaredMethod(Class.java:2473)
	at java.desktop/java.awt.Component.isCoalesceEventsOverriden(Component.java:6336)
	at java.desktop/java.awt.Component$3.run(Component.java:6290)
	at java.desktop/java.awt.Component$3.run(Component.java:6288)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.desktop/java.awt.Component.checkCoalescing(Component.java:6287)
	at java.desktop/java.awt.Component.<init>(Component.java:6256)
	at java.desktop/java.awt.Container.<init>(Container.java:296)
	at java.desktop/javax.swing.JComponent.<init>(JComponent.java:599)
	at com.sylvanaar.idea.Lua.module.LuaSdkChooserPanel.<init>(LuaSdkChooserPanel.java:40)
	at com.sylvanaar.idea.Lua.module.LuaSdkSelectStep$1.compute(LuaSdkSelectStep.java:41)
	at com.sylvanaar.idea.Lua.module.LuaSdkSelectStep$1.compute(LuaSdkSelectStep.java:36)
	at com.intellij.openapi.util.NotNullLazyValue.getValue(NotNullLazyValue.java:38)
	at com.sylvanaar.idea.Lua.module.LuaSdkSelectStep.getComponent(LuaSdkSelectStep.java:59)
	at com.intellij.ide.wizard.AbstractWizard.addStep(AbstractWizard.java:314)
	at com.intellij.ide.wizard.AbstractWizard.addStep(AbstractWizard.java:304)
	at com.intellij.ide.projectWizard.NewProjectWizard.init(NewProjectWizard.java:58)
	at com.intellij.ide.projectWizard.NewProjectWizard.<init>(NewProjectWizard.java:40)
	at com.intellij.ide.actions.NewProjectAction.actionPerformed(NewProjectAction.java:21)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:280)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:296)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:281)
	at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:77)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:285)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:112)
	at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:112)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
	at java.desktop/javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:401)
	at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:369)
	at java.desktop/com.apple.laf.ScreenMenuItemCheckbox.itemStateChanged(ScreenMenuItemCheckbox.java:198)
	at java.desktop/java.awt.CheckboxMenuItem.processItemEvent(CheckboxMenuItem.java:396)
	at java.desktop/java.awt.CheckboxMenuItem.processEvent(CheckboxMenuItem.java:364)
	at java.desktop/java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:375)
	at java.desktop/java.awt.MenuComponent.dispatchEvent(MenuComponent.java:363)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:974)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:847)
	at com.intellij.ide.IdeEventQueue.lambda$null$8(IdeEventQueue.java:449)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:741)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:502)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.ClassNotFoundException: com.intellij.ide.util.projectWizard.JdkChooserPanel PluginClassLoader[Lua, 1.0.124] com.intellij.ide.plugins.cl.PluginClassLoader@32c935bb
	at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:115)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
	... 63 more

IntelliJ version info:

IntelliJ IDEA 2020.1.1 (Ultimate Edition)
Build #IU-201.7223.91, built on April 29, 2020
Runtime version: 11.0.6+8-b765.40 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.6
GC: G1 Young Generation, G1 Old Generation
Memory: 1600M
Cores: 8

This might be the error #12 ran into.

goto syntax

function func ()
    local a = 1
    ::label:: print("--- goto label ---")

    a = a+1
    if a < 3 then
        goto label
    end
end

it complain "chunk:3: unexpected symbol in prefix expression near :"

Unused assignment with classing

When using Lua classing, it reports the main variable as "unused" invalidly.

Example;

local test = {} -- This is flagged as unused

function test:SomeFunc()
	print("Hello world")
end

Icon for tail call looks like it would mean recursive

Lua:
image

Kotlin:
image

The two gutter icons look very similar. They shouldn't though since the first icon effectively means goto and the second icon means call recursively. These are completely different concepts and they should not be confused.

Project Structure Dialog NullPointerException

I think this is the same issue as #3, but I'm not quite sure. The relevant exception occurs when clicking the File>Project Structure button in IntelliJ:

java.lang.AbstractMethodError
	at com.intellij.openapi.roots.libraries.LibraryPresentationProvider.getIcon(LibraryPresentationProvider.java:59)
	at com.intellij.openapi.roots.libraries.LibraryPresentationProvider.getIcon(LibraryPresentationProvider.java:65)
	at com.sylvanaar.idea.Lua.library.LuaLibraryType.getIcon(LuaLibraryType.java:89)
	at com.sylvanaar.idea.Lua.library.LuaLibraryType.getIcon(LuaLibraryType.java:38)
	at com.intellij.openapi.roots.ui.configuration.libraries.impl.LibraryPresentationManagerImpl$2.processProperties(LibraryPresentationManagerImpl.java:112)
	at com.intellij.openapi.roots.impl.libraries.LibraryDetectionManagerImpl.processProperties(LibraryDetectionManagerImpl.java:41)
	at com.intellij.openapi.roots.ui.configuration.libraries.impl.LibraryPresentationManagerImpl.getCustomIcons(LibraryPresentationManagerImpl.java:107)
	at com.intellij.openapi.roots.ui.configuration.libraries.impl.LibraryPresentationManagerImpl.getCustomIcon(LibraryPresentationManagerImpl.java:95)
	at com.intellij.openapi.roots.ui.OrderEntryAppearanceServiceImpl.forLibrary(OrderEntryAppearanceServiceImpl.java:98)
	at com.intellij.openapi.roots.ui.OrderEntryAppearanceServiceImpl.forOrderEntry(OrderEntryAppearanceServiceImpl.java:78)
	at com.intellij.openapi.roots.ui.configuration.classpath.ClasspathPanelImpl.getCellAppearance(ClasspathPanelImpl.java:701)
	at com.intellij.openapi.roots.ui.configuration.classpath.ClasspathPanelImpl$TableItemRenderer.customizeCellRenderer(ClasspathPanelImpl.java:720)
	at com.intellij.ui.ColoredTableCellRenderer.getTableCellRendererComponent(ColoredTableCellRenderer.java:36)
	at com.intellij.ui.table.JBTable.calculateRowHeight(JBTable.java:164)
	at com.intellij.ui.table.JBTable.getRowHeight(JBTable.java:142)
	at javax.swing.JTable.getRowHeight(JTable.java:992)
	at javax.swing.JTable.getCellRect(JTable.java:2937)
	at javax.swing.JTable.valueChanged(JTable.java:4698)
	at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:184)
	at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:164)
	at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:211)
	at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:405)
	at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:415)
	at javax.swing.DefaultListSelectionModel.setSelectionInterval(DefaultListSelectionModel.java:459)
	at com.intellij.openapi.roots.ui.configuration.classpath.ClasspathPanelImpl.<init>(ClasspathPanelImpl.java:248)
	at com.intellij.openapi.roots.ui.configuration.ClasspathEditor.createComponentImpl(ClasspathEditor.java:97)
	at com.intellij.openapi.roots.ui.configuration.ModuleElementsEditor.createComponent(ModuleElementsEditor.java:86)
	at com.intellij.openapi.roots.ui.configuration.TabbedModuleEditor.createCenterPanel(TabbedModuleEditor.java:61)
	at com.intellij.openapi.roots.ui.configuration.HeaderHidingTabbedModuleEditor.createCenterPanel(HeaderHidingTabbedModuleEditor.java:30)
	at com.intellij.openapi.roots.ui.configuration.ModuleEditor.a(ModuleEditor.java:264)
	at com.intellij.openapi.roots.ui.configuration.ModuleEditor.getPanel(ModuleEditor.java:272)
	at com.intellij.openapi.roots.ui.configuration.projectRoot.ModuleConfigurable.createOptionsPanel(ModuleConfigurable.java:134)
	at com.intellij.openapi.ui.NamedConfigurable.createComponent(NamedConfigurable.java:93)
	at com.intellij.openapi.ui.MasterDetailsComponent.updateSelection(MasterDetailsComponent.java:666)
	at com.intellij.openapi.roots.ui.configuration.projectRoot.ModuleStructureConfigurable.updateSelection(ModuleStructureConfigurable.java:191)
	at com.intellij.openapi.ui.MasterDetailsComponent.setSelectedNode(MasterDetailsComponent.java:657)
	at com.intellij.openapi.ui.MasterDetailsComponent.updateSelectionFromTree(MasterDetailsComponent.java:247)
	at com.intellij.openapi.ui.MasterDetailsComponent.reset(MasterDetailsComponent.java:385)
	at com.intellij.openapi.roots.ui.configuration.projectRoot.BaseStructureConfigurable.reset(BaseStructureConfigurable.java:264)
	at com.intellij.openapi.roots.ui.configuration.projectRoot.ModuleStructureConfigurable.reset(ModuleStructureConfigurable.java:345)
	at com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable.reset(ProjectStructureConfigurable.java:362)
	at com.intellij.openapi.options.ex.SingleConfigurableEditor.<init>(SingleConfigurableEditor.java:67)
	at com.intellij.openapi.options.ex.SingleConfigurableEditor.<init>(SingleConfigurableEditor.java:89)
	at com.intellij.openapi.options.ex.SingleConfigurableEditor.<init>(SingleConfigurableEditor.java:104)
	at com.intellij.ide.actions.ShowStructureSettingsAction$1.<init>(ShowStructureSettingsAction.java:45)
	at com.intellij.ide.actions.ShowStructureSettingsAction.showDialog(ShowStructureSettingsAction.java:45)
	at com.intellij.ide.actions.ShowStructureSettingsAction.actionPerformed(ShowStructureSettingsAction.java:41)
	at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:215)
	at com.intellij.openapi.application.TransactionGuardImpl.a(TransactionGuardImpl.java:86)
	at com.intellij.openapi.application.TransactionGuardImpl.submitTransactionAndWait(TransactionGuardImpl.java:151)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:230)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.a(ActionMenuItem.java:309)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:929)
	at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:136)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:299)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem.a(ActionMenuItem.java:116)
	at com.intellij.openapi.application.TransactionGuardImpl.a(TransactionGuardImpl.java:86)
	at com.intellij.openapi.application.TransactionGuardImpl.a(TransactionGuardImpl.java:109)
	at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:118)
	at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:122)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:116)
	at com.intellij.ui.plaf.beg.BegMenuItemUI.a(BegMenuItemUI.java:513)
	at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:45)
	at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:533)
	at java.awt.Component.processMouseEvent(Component.java:6533)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6298)
	at java.awt.Container.processEvent(Container.java:2236)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Container.dispatchEventImpl(Container.java:2294)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
	at java.awt.Container.dispatchEventImpl(Container.java:2280)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at com.intellij.ide.IdeEventQueue.i(IdeEventQueue.java:827)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:651)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

I hope that with more information this can be fixed; i'm not sure if it still exists, because the line numbers don't make sense.

Version Info

Plugin

My plugin version is 1.0.109.

IntelliJ

IntelliJ IDEA 2017.1.5
Build #IU-171.4694.70, built on July 4, 2017
JRE: 1.8.0_131-8u131-b11-0ubuntu1.16.04.2-b11 amd64
JVM: OpenJDK 64-Bit Server VM by Oracle Corporation
Linux 4.8.0-58-generic

Formatting the file adds a space in the first line

Have a file bug.lua in the editor:

#! /usr/bin/lua

What steps will reproduce the issue?

  1. Press Ctrl+Alt+L to format the file

What is the expected result?

Nothing happens since the file already looks fine.

What happens instead?

A space is added between the #! and the /usr/bin/lua.
Pressing Ctrl+Alt+L again adds another space, and so on.

cannot debug lua

after install this plugin , there are two SDKs need to be set home path .Kahlua and LuaJ.

but IDE show error msg:

the selected directory is not a valid home for lua sdk.

the path is : /Users/retech/Documents/Git/luaj-3.0 .

since i have download the luaj3.0 sdk.

More: i install this plug in IDEA directly.

Unused assignment when not checking

When defining a variable, and then checking if it doesn't exist and overriding it, it flags the original as unused.

Example:

local test = _G["Test"] -- This is flag as unused

if not test then
	test = CreateFrame("Frame", "Test")
end

test:SomeFunc()

Wrong 'unused assignment' warnings

#! /usr/bin/lua

local function format_mi()
	local head = {}
	local entries = {}

	local mi = assert(io.open("mi", "r"))
	for line in mi:lines() do
		if line:sub(1, 2) == "./" then
			table.insert(entries, line)
		else
			table.insert(head, line)
		end
	end
	io.write(string.format("%d head, %d entries\n", #head, #entries))
end

format_mi()

The following identifiers are wrongly marked as unused:

  • format_mi in line 3
  • head in line 4
  • entries in line 5
  • mi in line 7
  • line in line 8

The function assert in line 7 is highlighted and marked as "Unassigned variable usage", which is also wrong. I did set up Lua 5.3.5, which runs the program successfully.

image

IMPORTANT: Sylvanaar

This is difficult to post, but Sylvanaar contributed so much to the community, I feel like this needs to be known.

Sylvanaar passed away about 2 months ago, suddenly, tragically. I worked with him for about 4-5 years, he was my mentor, my friend, and we always had each others 6 in Call of Duty.

Please don't let this repo go unmaintained.

Integer division operator is not recognized

Lua 5.4 (and probably a few earlier versions) support the integer division operator //.
This operator should not produce parse errors, and when formatting the source code, should not be split into / /. Example program:

local function roundup(n, mul)
  return (n + mul) // mul * mul
end

Please don't override log4j configuration in IDE

While investigating #22, we've found the root cause of the issue: it's the log.xml configuration file which is loaded by the LuaLoggerManager component:

final VirtualFile logXml = LuaFileUtil.getPluginVirtualDirectoryChild("log.xml");
File logXmlFile = new File(logXml.getPath());
String text = FileUtil.loadFile(logXmlFile);
text = StringUtil.replace(text, SYSTEM_MACRO, StringUtil.replace(PathManager.getSystemPath(), "\\", "\\\\"));
text = StringUtil.replace(text, APPLICATION_MACRO, StringUtil.replace(PathManager.getHomePath(), "\\", "\\\\"));
text = StringUtil.replace(text, LOG_DIR_MACRO, StringUtil.replace(PathManager.getLogPath(), "\\", "\\\\"));
new DOMConfigurator().doConfigure(new StringReader(text), LogManager.getLoggerRepository());

(note that, while this component is disabled in the source code of the plugin, it is, nevertheless, enabled in the plugin builds uploaded to the Marketplace, which I've already reported as #26)

This log.xml configures the following appender:

IDLua/include/log.xml

Lines 5 to 13 in ffc0589

<appender name="CONSOLE-WARN" class="org.apache.log4j.ConsoleAppender">
<param name="target" value="System.err"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%7r] %6p - %30.30c - %m \n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="WARN"/>
</filter>
</appender>

This appender just passes logs with WARN level to the process' stderr.

At the same time, Rider (for reasons beyond the scope of current investigation) has a special mechanism that does a reverse thing: takes its stderr and passes back to logger.

So, any log with the WARN level will get passed to the logger, which will try to write it into stderr, which will get mirrored back to the logger, etc. etc., which will either cause a stack overflow or out of memory error (we've encountered both during the investigation).

While this particular issue will likely be fixed in Rider 2021.1, it isn't recommended to change the IDE log settings from the plugin. Instead of that, please use the IDE logging system as-is and use the IDE debug log settings (available in Help → Diagnostic Tools → Debug Log Settings… main menu item) if you want to enable / disable logging on the go.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.