Giter Site home page Giter Site logo

enerccio / slt Goto Github PK

View Code? Open in Web Editor NEW
189.0 14.0 10.0 1.18 MB

SLT is an IDE Plugin for Itellij/Jetbrains IDE lineup implementing support for Common Lisp via Slime/Swank and supported lisp interpret.

License: Apache License 2.0

Kotlin 0.10% Java 33.42% Lex 0.35% Common Lisp 66.10% Shell 0.03%
common-lisp integrated-development-environment intellij-plugin jetbrains jetbrains-plugin lisp sbcl

slt's Introduction

SLT - A Common Lisp Language Plugin for Jetbrains IDE lineup

GitHub release (latest by date) Version JetBrains plugins GitHub Release Date OSS Lifecycle GitHub GitHub lisp counter 0.1.0 0.2.0 0.3.0 0.4.0 0.5.0 GitHub all releases GitHub last commit GitHub commit activity GitHub code size in bytes Lines of code GitHub top language (want-to-support-me? T NIL) Liberapay patrons Support me on PatreonSupport me on Patreon Maintenance GitHub issues GitHub branch checks state

Subreddit subscribers GitHub forks GitHub Repo stars GitHub watchers Join the chat at https://gitter.im/SLT-Plugin/community GitHub Discussions

Image

THIS PLUGIN IS EXPERIMENTAL and can crash at any time! Please report all bugs!

This plugin is providing support for Common Lisp for JetBrains IDEs. Using modified SLIME/Swank protocol to communicate with lisp interpret providing IDE capabilities for Common Lisp.

(Somewhat) Detailed Installation and Usage Guide

You can now download the plugin from marketplace! https://plugins.jetbrains.com/plugin/21132-slt

https://github.com/Enerccio/SLT/wiki/User-Guide

Requirements

  1. Intellij based IDE - tested on Intellij Idea Community/Ultimate but should work on all major IDEs
    1. Versions supported are from 2022.2 and upwards

Optionally (see more - guide):

  1. One of the supported LISP Interprets installed:
  2. Quicklisp installed

(Not all features work with all interprets, see FEATURES.md for more info!)

Getting started

See https://github.com/Enerccio/SLT/wiki/User-Guide#plugin-installation

Plugin options

Compiling source

Clone the repository and change gradle.properties for your IDE. Then use gradle to build the plugin. You can also open this as a project in Intellij Idea.

Planned features / goals

  • Upload to marketplace when it has enough features
  • Automatic indentation
  • REPL
    • REPL return inspection
  • Interactive debugging
  • Argument help (Ctrl+P)
  • Inspection
    • Basic inspection
    • Actions
    • Symbol inspector
    • Inspection eval
  • Breakpoints
  • Documentation
    • Hyperspec intergration
  • Macro expand (all, 1, normal)
  • Find function by symbol name
  • Search for symbols
  • Back references
  • Rainbow braces
  • Refactoring
    • Extracting lambda to function
  • List of quicklisp installed packages / ASDF packages
  • List of modified top level forms that are yet to be evaluated
  • Actually make an IDE, ie just plugin with dependencies as one application, not a plugin
  • SDK Support
    • not a true SDK because that is only available in Intellij and not in (for instance) PyCharm, thus this is implemented manually.
    • Download SBCL and quicklisp for user
  • Automatic download of lisp interpret and quicklisp
  • Different lisp interpreter support

License

This project is licensed under Apache License v2.

How to help?

  • Please install the plugin and try it out!
  • Report all bugs so I can catch them all. Click here to report.
  • If you like the project, consider starring it or spreading info about it
  • This project is OSS so if you have knowledge and want to implement something you can fork the repo and then create PR!

Donations

If you feel like it, you can donate to support my work via Liberapay or Patreon.

What does SLT even mean?

SLT - Speech Language Therapy. Only cure for LISP!

Also, backronym for Superior Lisp Tooling!

slt's People

Contributors

dependabot[bot] avatar enerccio 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  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

slt's Issues

When changing *| |* to #| |# I get a lexer error

com.intellij.diagnostic.PluginException: commitDocument() left PSI inconsistent: not committed document DocumentImpl[file:///src/self/slt/src/main/resources/templates/en_US/sbcl-init.cl], File[Common Lisp sbcl-init.cl, Language: Common Lisp, com.intellij.psi.SingleRootFileViewProvider{vFile=file:///src/self/slt/src/main/resources/templates/en_US/sbcl-init.cl, vFileId=2129189, content=com.intellij.psi.AbstractFileViewProvider$PsiFileContent@3fb8d525, eventSystemEnabled=true}]; node.length=0; doc.text!=file.text; file name:sbcl-init.cl; type:com.en_circle.slt.plugin.SltCommonLispFileType@37f2443c; lang:Language: Common Lisp [Plugin: com.en_circle.slt.plugin]
at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:23)
at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:83)
at com.intellij.diagnostic.PluginException.logPluginError(PluginException.java:100)
at com.intellij.psi.impl.DocumentCommitThread.assertAfterCommit(DocumentCommitThread.java:325)
at com.intellij.psi.impl.DocumentCommitThread.lambda$doCommit$5(DocumentCommitThread.java:308)
at com.intellij.psi.impl.PsiDocumentManagerBase.commitToExistingPsi(PsiDocumentManagerBase.java:422)
at com.intellij.psi.impl.PsiDocumentManagerBase.lambda$finishCommitInWriteAction$5(PsiDocumentManagerBase.java:396)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:664)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:620)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$computeInNonCancelableSection$4(CoreProgressManager.java:232)
at com.intellij.openapi.progress.Cancellation.computeInNonCancelableSection(Cancellation.java:99)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:232)
at com.intellij.psi.impl.PsiDocumentManagerBase.lambda$finishCommitInWriteAction$6(PsiDocumentManagerBase.java:391)
at com.intellij.psi.impl.PsiDocumentManagerBase.executeInsideCommit(PsiDocumentManagerBase.java:507)
at com.intellij.psi.impl.PsiDocumentManagerBase.finishCommitInWriteAction(PsiDocumentManagerBase.java:389)
at com.intellij.psi.impl.PsiDocumentManagerImpl.finishCommitInWriteAction(PsiDocumentManagerImpl.java:136)
at com.intellij.psi.impl.PsiDocumentManagerBase$2.run(PsiDocumentManagerBase.java:356)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:955)
at com.intellij.psi.impl.PsiDocumentManagerBase.finishCommit(PsiDocumentManagerBase.java:353)
at com.intellij.psi.impl.DocumentCommitThread.lambda$commitUnderProgress$2(DocumentCommitThread.java:141)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$safeTransferToEdt$6(NonBlockingReadActionImpl.java:633)
at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209)
at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21)
at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:813)
at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:429)
at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:74)
at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:114)
at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:36)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:779)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:749)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:909)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:756)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$5(IdeEventQueue.java:437)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:772)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:436)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:615)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:434)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:813)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:480)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)

Rainbow Delimiters Support

It would be nice to have rainbow delimiters in SLT. For me, this is a crucial visual aid for Lisp programming.

There is a Rainbow Brackets plugin for JetBrains IDEs, but it doesn't seem to support Common Lisp, and the plugin itself costs money.

Code completion could work better

๐Ÿ‘ the plugin is great, installation was smooth (Idea IntelliJ IDEA 2022.3.2 Community, Win 10 Home), and I enjoy using it! bug report below:

steps to reproduce

  1. edit .lisp file
  2. type defpar
  3. press `Tab key

image

expected behavior

  • code completion should transform defpar into to defparameter;
(defparameter )
  • cursor position should be after the white space, and before closing bracket

actual behavior

  • code completion did not work
  • "tip" pop-up was closed, cursor position stayed in the current position
    image

Stacktrace internal IDE errors while normal use

Windows 10, SBLT. Pycharm 2023.1.

When using SLT, Pycharm shows me stacktrace IDE internal errors. I saw this when I started a REPL and when I attempted interative debugger. Things seem to work correctly, so this is not broken or degraded, just surprising.

The errors I see:

com.intellij.diagnostic.PluginException: BGT action SltCoreWindow$1 (com.en_circle.slt.plugin.ui.SltCoreWindow$1) is not allowed. Only EDT actions are allowed. [Plugin: com.en_circle.slt.plugin]
	at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:23)
	at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:89)
	at com.intellij.ui.tabs.impl.ActionButton.<init>(ActionButton.java:44)
	at com.intellij.ui.tabs.impl.ActionPanel$1.<init>(ActionPanel.java:51)
	at com.intellij.ui.tabs.impl.ActionPanel.<init>(ActionPanel.java:51)
	at com.intellij.ui.tabs.impl.TabLabel.setTabActions(TabLabel.java:527)
	at com.intellij.ui.tabs.impl.JBTabsImpl.updateTabActions(JBTabsImpl.java:1899)
	at com.intellij.ui.tabs.impl.JBTabsImpl.propertyChange(JBTabsImpl.java:1750)
	at java.desktop/java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:343)
	at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:335)
	at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:268)
	at com.intellij.ui.tabs.TabInfo.setTabLabelActions(TabInfo.java:265)
	at com.en_circle.slt.plugin.ui.SltCoreWindow.addRepl(SltCoreWindow.java:113)
	at com.en_circle.slt.plugin.ui.SltCoreWindow$ConsoleWindowAction.actionPerformed(SltCoreWindow.java:228)
	at com.intellij.openapi.actionSystem.impl.ActionButton.actionPerformed(ActionButton.java:228)
	at com.intellij.openapi.actionSystem.impl.ActionButton.lambda$performAction$2(ActionButton.java:207)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:356)
	at com.intellij.openapi.actionSystem.impl.ActionButton.performAction(ActionButton.java:207)
	at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:518)
	at java.desktop/java.awt.Component.processEvent(Component.java:6421)
	at java.desktop/java.awt.Container.processEvent(Container.java:2266)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5026)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2804)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:790)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:731)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:763)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:761)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:760)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:666)
	at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.kt:614)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:569)
	at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:68)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:349)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:348)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:348)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:343)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:994)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:994)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$4(IdeEventQueue.kt:343)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:385)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)

And after I started interative debugger with a (break):

com.intellij.diagnostic.PluginException: BGT action SltDebuggerImpl$1 (com.en_circle.slt.plugin.ui.debug.SltDebuggerImpl$1) is not allowed. Only EDT actions are allowed. [Plugin: com.en_circle.slt.plugin]
	at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:23)
	at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:89)
	at com.intellij.ui.tabs.impl.ActionButton.<init>(ActionButton.java:44)
	at com.intellij.ui.tabs.impl.ActionPanel$1.<init>(ActionPanel.java:51)
	at com.intellij.ui.tabs.impl.ActionPanel.<init>(ActionPanel.java:51)
	at com.intellij.ui.tabs.impl.TabLabel.setTabActions(TabLabel.java:527)
	at com.intellij.ui.tabs.impl.JBTabsImpl.updateTabActions(JBTabsImpl.java:1899)
	at com.intellij.ui.tabs.impl.JBTabsImpl.addTab(JBTabsImpl.java:1431)
	at com.intellij.ui.tabs.impl.JBTabsImpl.addTab(JBTabsImpl.java:1399)
	at com.intellij.ui.tabs.impl.JBTabsImpl.addTab(JBTabsImpl.java:1461)
	at com.en_circle.slt.plugin.ui.debug.SltDebuggers.lambda$onDebugCreate$0(SltDebuggers.java:52)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:209)
	at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:21)
	at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:191)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
	at com.intellij.openapi.application.impl.ApplicationImpl$3.run(ApplicationImpl.java:456)
	at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:79)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:122)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:41)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:788)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
	at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:731)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:758)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:666)
	at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$7(IdeEventQueue.kt:570)
	at com.intellij.openapi.application.impl.ApplicationImpl.withoutImplicitRead(ApplicationImpl.java:1446)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:570)
	at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:68)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:349)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:348)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:348)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:343)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:994)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:994)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$4(IdeEventQueue.kt:343)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:385)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)

Failed build on macOS M1

BUILD FAILED in 2m 50s

FAILURE: Build failed with an exception.

  • What went wrong:
    A problem occurred configuring root project 'slt'.

Could not create task ':signPlugin'.
./signcerts/chain.crt (No such file or directory)

Cannot Verify SDK

I cannot add a new SDK (in this case SBCL). I receive an error during verification, and cannot proceed.

  • Windows 10
  • PyCharm 2023.1 (professional edition)
  • Using v 0.5.0 of the plugin.
PS C:\Users\macke> sbcl --version
SBCL 2.3.2

Installed with Chocolatey. Downloaded quicklisp file from the website. .

image

start method in SwankServer doesn't seem to work on windows (\ VS / in windows paths)

Using Intellij Community and sbcl 2.3.0 from scoop package manager (and installed initially the 'swank' and 'eclector' from quicklisp).

Modifying:
new InitScriptTemplate(...)
with
sltCore.getAbsolutePath().replace("\", "/")
worked

See:
src/main/java/com/en_circle/slt/plugin/swank/SwankServer.java

But this doesn't seem to be a portable (clean or nice) way of doing it.

Plugin loading exception

com.intellij.diagnostic.PluginException: Cannot create extension (class=com.en_circle.slt.plugin.highlights.SltColorSettingsPage) [Plugin: com.en_circle.slt.plugin]
at com.intellij.serviceContainer.ComponentManagerImpl.createError(ComponentManagerImpl.kt:1051)
at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.doCreateInstance(XmlExtensionAdapter.kt:70)
at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.createInstance(XmlExtensionAdapter.kt:31)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processAdapter(ExtensionPointImpl.java:473)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl.processAdapters(ExtensionPointImpl.java:421)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl.getExtensions(ExtensionPointImpl.java:264)
at com.intellij.openapi.extensions.ExtensionPointName.getExtensions(ExtensionPointName.java:35)
at com.intellij.openapi.options.colors.pages.ColorSettingsPagesImpl.getRegisteredPages(ColorSettingsPagesImpl.java:33)
at com.intellij.application.options.colors.ColorAndFontOptions.initPluggedDescriptions(ColorAndFontOptions.java:537)
at com.intellij.application.options.colors.ColorAndFontOptions.initScheme(ColorAndFontOptions.java:529)
at com.intellij.application.options.colors.ColorAndFontOptions.initAll(ColorAndFontOptions.java:513)
at com.intellij.application.options.colors.ColorAndFontOptions.buildConfigurables(ColorAndFontOptions.java:375)
at com.intellij.openapi.options.SearchableConfigurable$Parent$Abstract.getConfigurables(SearchableConfigurable.java:75)
at com.intellij.openapi.options.ex.ConfigurableWrapper$CompositeWrapper.getConfigurables(ConfigurableWrapper.java:287)
at com.intellij.openapi.options.ex.EpBasedConfigurableGroupKt.collect(EpBasedConfigurableGroup.kt:149)
at com.intellij.openapi.options.ex.EpBasedConfigurableGroupKt.collect(EpBasedConfigurableGroup.kt:158)
at com.intellij.openapi.options.ex.EpBasedConfigurableGroupKt.access$collect(EpBasedConfigurableGroup.kt:1)
at com.intellij.openapi.options.ex.EpBasedConfigurableGroup.createListener$lambda$0(EpBasedConfigurableGroup.kt:97)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl$4.extensionListChanged(ExtensionPointImpl.java:823)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl.notifyListeners(ExtensionPointImpl.java:731)
at com.intellij.openapi.extensions.impl.ExtensionPointImpl.lambda$registerExtensions$17(ExtensionPointImpl.java:957)
at com.intellij.ide.plugins.DynamicPlugins.loadPlugin$lambda$29(DynamicPlugins.kt:860)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:955)
at com.intellij.ide.plugins.DynamicPlugins.loadPlugin(DynamicPlugins.kt:843)
at com.intellij.ide.plugins.DynamicPlugins.loadPlugin(DynamicPlugins.kt:817)
at com.intellij.ide.plugins.PluginInstaller.installAndLoadDynamicPlugin(PluginInstaller.java:401)
at com.intellij.ide.plugins.newui.MyPluginModel.lambda$apply$0(MyPluginModel.java:160)
at com.intellij.ide.plugins.InstalledPluginsState.trackPluginInstallation(InstalledPluginsState.java:190)
at com.intellij.ide.plugins.newui.MyPluginModel.apply(MyPluginModel.java:159)
at com.intellij.ide.plugins.PluginManagerConfigurable.apply(PluginManagerConfigurable.java:1790)
at com.intellij.openapi.options.ex.ConfigurableWrapper.apply(ConfigurableWrapper.java:179)
at com.intellij.openapi.options.newEditor.ConfigurableEditor.apply(ConfigurableEditor.java:321)
at com.intellij.openapi.options.newEditor.SettingsEditor$5.apply(SettingsEditor.java:205)
at com.intellij.openapi.options.newEditor.ConfigurableEditor$2.actionPerformed(ConfigurableEditor.java:65)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6648)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3392)
at java.desktop/java.awt.Component.processEvent(Component.java:6413)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5022)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2802)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:754)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:752)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:751)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:909)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:831)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:753)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$5(IdeEventQueue.java:437)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:772)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:436)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:615)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:434)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:813)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:480)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:121)
at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234)
at java.desktop/java.awt.Dialog.show(Dialog.java:1080)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:743)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:467)
at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1676)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1634)
at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:90)
at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:60)
at com.intellij.ide.actions.ShowSettingsAction.actionPerformed(ShowSettingsAction.java:47)
at com.intellij.openapi.actionSystem.ex.ActionUtil.doPerformActionOrShowPopup(ActionUtil.java:323)
at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performActionDumbAwareWithCallbacks$4(ActionUtil.java:302)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:346)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:302)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$performAction$5(ActionMenuItem.java:296)
at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:226)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.performAction(ActionMenuItem.java:289)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$new$0(ActionMenuItem.java:64)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$4(ActionMenuItem.java:111)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:105)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:111)
at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:526)
at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:558)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6648)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3392)
at java.desktop/java.awt.Component.processEvent(Component.java:6413)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5022)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2802)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:754)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:752)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:751)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:909)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:831)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:753)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$5(IdeEventQueue.java:437)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:772)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:436)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113)
at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:615)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:434)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:813)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:480)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Caused by: com.intellij.diagnostic.PluginException: Cannot create class com.en_circle.slt.plugin.highlights.SltColorSettingsPage (classloader=PluginClassLoader(plugin=PluginDescriptor(name=Slt, id=com.en_circle.slt.plugin, descriptorPath=plugin.xml, path=\AppData\Roaming\JetBrains\IntelliJIdea2022.3\plugins\slt-0.1.1.jar, version=0.1.1, package=null, isBundled=false), packagePrefix=null, instanceId=396, state=active))
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:989)
at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.instantiateClass(XmlExtensionAdapter.kt:79)
at com.intellij.openapi.extensions.impl.XmlExtensionAdapter$SimpleConstructorInjectionAdapter.instantiateClass(XmlExtensionAdapter.kt:90)
at com.intellij.openapi.extensions.impl.XmlExtensionAdapter.doCreateInstance(XmlExtensionAdapter.kt:50)
... 144 more
Caused by: java.lang.ExceptionInInitializerError
at java.base/jdk.internal.misc.Unsafe.allocateInstance(Native Method)
at java.base/java.lang.invoke.DirectMethodHandle.allocateInstance(DirectMethodHandle.java:520)
at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:950)
... 147 more
Caused by: com.intellij.diagnostic.PluginException: Cannot load class com.en_circle.slt.templates.CodeHighlightTemplate (
error: org/watertemplate/Template,
classLoader=PluginClassLoader(plugin=PluginDescriptor(name=Slt, id=com.en_circle.slt.plugin, descriptorPath=plugin.xml, path=
\AppData\Roaming\JetBrains\IntelliJIdea2022.3\plugins\slt-0.1.1.jar, version=0.1.1, package=null, isBundled=false), packagePrefix=null, instanceId=396, state=active)
)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.java:426)
at com.intellij.ide.plugins.cl.PluginClassLoader.tryLoadingClass(PluginClassLoader.java:240)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:212)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
at com.en_circle.slt.plugin.highlights.SltColorSettingsPage.(SltColorSettingsPage.java:21)
... 150 more
Caused by: java.lang.NoClassDefFoundError: org/watertemplate/Template
at java.base/java.lang.ClassLoader.defineClass2(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1103)
at com.intellij.util.lang.UrlClassLoader.consumeClassData(UrlClassLoader.java:264)
at com.intellij.util.lang.ZipResourceFile.findClass(ZipResourceFile.java:113)
at com.intellij.util.lang.JarLoader.findClass(JarLoader.java:63)
at com.intellij.util.lang.ClassPath.findClassInLoader(ClassPath.java:243)
at com.intellij.util.lang.ClassPath.findClass(ClassPath.java:176)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.java:418)
... 154 more
Caused by: java.lang.ClassNotFoundException: org.watertemplate.Template PluginClassLoader(plugin=PluginDescriptor(name=Slt, id=com.en_circle.slt.plugin, descriptorPath=plugin.xml, path=~\AppData\Roaming\JetBrains\IntelliJIdea2022.3\plugins\slt-0.1.1.jar, version=0.1.1, package=null, isBundled=false), packagePrefix=null, instanceId=396, state=active)
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:215)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 162 more

Error occured in typing to REPL

Hi,

I have encountered an error as in screenshot with IntelliJ IDEA 2022.3.2 (Community Edition) on Arch Linux.
My SDK settings are below:

  • SBCL executable: ros run
  • SBCL core (optional): (empty)
  • Quicklisp path: (home directory)/.roswell/lisp/quicklisp/setup.lisp

How to reproduce

  1. Open REPL from Lisp Process tab.
  2. Type something. (I was trying to require some package.)

image

I like this project, thanks!

Changing the Quicklisp path fails

Using Rider on macOS Ventura with the downloaded slt-0.1.0-signed-RD.zip.

I go to Settings > SLT Configuration and change the Quicklisp path to ~/etc/quicklisp/setup.lisp (my quicklisp install). When I click the Save button, I get an alert:

Failed to Start SBCL
Cannot invoke "com.en_circle.slt.plugin.swank.SwankClient.close()" because "this.client" is null

And the new Quicklisp path isn't saved, either.
I have entered the full path to my SBCL executable, which is being saved correctly.

Support for Roswell ?

While downloading & setting up SBCL (+quicklisp) has some value, it won't get one as far on windows.
Some sweet packages depend on gcc or some libs being available, and that means MSYS and a whole bunch of messing around.

Supporting Roswell (and launching it through the MSYS it's able to install -- so all the goodies would be "on path") would make it even easier for noobs to get started on windows.

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.