Git Product home page Git Product logo

nix-idea's Introduction

NixIDEA - A Nix language plugin for IntelliJ IDEA

Build Status Version

This plugin has the goal of being generally useful when working with nixpkgs/NixOS/nixops. It currently adds support for the Nix language. The following features are available:

  • Syntax Highlighting
  • Real time detection of syntax errors

We would also like to provide additional support for Nix/NixOS/NixOps, but the following features are currently not implemented:

  • Linting, code completion, formatting
  • Profile management
  • Run configurations
  • Templates for common usage patterns

Install

From JetBrains marketplace

The plugin can be found at the Jetbrains plugin repository as NixIDEA.

  • Goto File > Settings > Plugins > Marketplace
  • Type NixIDEA into the search bar
  • Click Install

From ZIP file

You can also install the plugin from a ZIP file.

  • Goto File > Settings > Plugins
  • Click onto the wheel icon on the top
  • Choose Install Plugin from Disk

You can find corresponding ZIP files on GitHub or build them yourself as described below.

Build

Build preparation

Follow the following steps before you build the project the first time.

  • Clone the repository
  • Ensure that you have a JDK for Java 11 or higher on your PATH
  • Only on NixOS: Setup JetBrains Runtime (JBR) from <nixpkgs>
    nix-build '<nixpkgs>' -A jetbrains.jdk -o jbr

Build execution

After you have completed the preparation, you can build the plugin by running the build task in Gradle.

./gradlew build

You should then find the plugin at build/distributions/NixIDEA-<version>.zip.

Credits

The Nix Snowflake (logo of NixOS) is designed by Tim Cuthbertson (@timbertson). It is made available under CC-BY license at NixOS/nixos-artwork. The variants used by this plugin may have been modified to comply with JetBrains' Guidelines.

nix-idea's People

Contributors

anatolypopov avatar edwtjo avatar github-actions[bot] avatar grahamc avatar hehongbo avatar jansorg avatar joedevivo avatar jojoatxgme avatar litarvan avatar mic92 avatar ondrejfuhrer avatar psub avatar saberos avatar tristan971 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  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

nix-idea's Issues

trailing comma in function argument list is incorrectly reported as an error

❯ cat test.nix
{
  # the plugin reports the error " 'foo' unexpected ", unless we remove the comma
  foo,
}:
foo

But Nix can understand the file just fine:

nix-repl> import ./test.nix { foo = 2; }
2

Environment:

Nix IDEA Version 0.4.0.4
Intellij IDEA Ultimate version 2022.1.3 (build 221.5921.22)

❯ nix --version
nix (Nix) 2.9.1

Would you be willing to accept PR with plugin rewrite into Kotlin?

I have some experience of writing plugins for Intellij and wanted to PR some features like reference support. I have always used Kotlin for Intellij plugins and I have noticed a lot of missing utility functions (including intellij specific ones) and miss nice quality of life features of Kotlin.

While the plugin is still in the early stages of development would you be willing to accept PR with plugin rewrite into Kotlin?

How to build on NixOS?

Because the Build runs with the JetBrains JDK it throws a not found error because of linking issues. How to build it on NixOS?

Exception in plugin

Either do the specified parameters not match any of the following constructors: [] or the constructors were not accessible for 'class org.nixos.idea.settings.NixIDEASettings'

org.picocontainer.PicoInitializationException: Either do the specified parameters not match any of the following constructors: [] or the constructors were not accessible for 'class org.nixos.idea.settings.NixIDEASettings'
at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.getGreediestSatisfiableConstructor(CachingConstructorInjectionComponentAdapter.java:186)
at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.doGetComponentInstance(CachingConstructorInjectionComponentAdapter.java:92)
at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.instantiateGuarded(CachingConstructorInjectionComponentAdapter.java:80)
at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.getComponentInstance(CachingConstructorInjectionComponentAdapter.java:63)
at com.intellij.openapi.extensions.AbstractExtensionPointBean.instantiate(AbstractExtensionPointBean.java:75)
at com.intellij.openapi.options.ConfigurableEP$ClassProducer.createElement(ConfigurableEP.java:342)
at com.intellij.openapi.options.ConfigurableEP.createConfigurable(ConfigurableEP.java:268)
at com.intellij.openapi.options.ex.ConfigurableWrapper.createConfigurable(ConfigurableWrapper.java:53)
at com.intellij.openapi.options.ex.ConfigurableWrapper.wrapConfigurable(ConfigurableWrapper.java:48)
at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurables(ConfigurableExtensionPointUtil.java:361)
at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:134)
at com.intellij.ide.actions.ShowSettingsUtilImpl.getConfigurableGroups(ShowSettingsUtilImpl.java:66)
at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:63)
at com.intellij.ide.actions.ShowSettingsAction.actionPerformed(ShowSettingsAction.java:52)
at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:208)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:224)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:306)
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:296)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:113)
at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:89)
at com.intellij.openapi.application.TransactionGuardImpl.access$300(TransactionGuardImpl.java:39)
at com.intellij.openapi.application.TransactionGuardImpl$1.run(TransactionGuardImpl.java:74)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:410)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:399)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:827)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:655)
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)

Update for IDEA 2017.2

My installation of 2017.2 claims this plug-in is not compatible. Is it supped to work with that version?

2:31 PM	Plugin Error
			Problems found loading plugins:
			The following plugins are incompatible with the current IDE build: NixIDEA

Support New Features of the Nix Expression Language

The parser was updated to Nix 2.3 in pull request #27. There were a few updates since then:

Nix 2.4

  • Antiquotations in paths, e.g. ./${foo} instead of ./. + foo.

Nix 2.5

  • Lists can now be compared lexicographically using the < operator.

Nix 2.6

  • No changes of the language

Nix 2.7

  • No changes of the language

I couldn't find any language change in the changelog (besides new built-ins) up to version 2.13.

Parsing issue with strings

Here is a screenshot of https://github.com/NixOS/nixpkgs/blob/ffb4797dd303589d48bae466ec4b735438f2244e/nixos/modules/services/networking/haproxy.nix open in Goglang with NixIdea v0.2.0.1:

image

The file is valid, but it seems the plugin fails to detect the end of the string, or something like this? That's what the coloration make me think, but I'm not really sure.

The error it shows is a false positive, that's all I'm sure of.

Sorry I'm not very familiar with Java nor IntelliJ plugins so I haven't tried digging into the plugin's code yet to see if I could make a PR.

I hope this report helps.

Inspections

This issue shall list some suggestions for inspections we might want to implement. New suggestions might be added over time. You can of course add your own suggestions in the comments.

Legacy | Expressions not supported in this version

Reports expressions which are not supported in the specified version. This inspection should have an option to specify the version.

Legacy | Usage of unquoted `or`

In certain situations, the Nix Expression Language allows using or as identifier or unquoted attribute. This seems to be permitted for backward compatibility. However, the behavior is not always as expected. See the following expression:

let f = x: x; or = 0; in [ "before" f or "after" ] #-> [ "before" 0 "after" ]

If you replace or with another identifier, the result would be different:

let f = x: x; id = 0; in [ "before" f id "after" ] #-> [ "before" <LAMBDA> 0 "after" ]

Also note that we would get another result if we replace f with a longer attribute path:

let f._ = x: x; or = 0; in [ "before" f._ or "after" ] #-> [ "before" <LAMBDA> ]

Due to this unexpected differences, we should warn at least about the usage in such scenarios. We might optionally also warn the user when the keyword is used as an attribute, although it doesn't have such consequences.

Legacy | Usage of unquoted URL

Reports usages of the URL syntax, which allows using unquoted URLs in the Nix Expression Language. This syntax was deprecated by RFC 45 in Nix 2.4.

Probable bugs | Indented strings inhibitor

Reports tabs and carriage returns (i.e. CR and CRLF). Leading whitespace is usually removed from indented strings (strings in double single quotes). However, tabs and carriage returns prevent this feature from working. (#3759)

Probable bugs | Infinite recursion

Reports attributes in recursive sets which cannot be resolved due to infinite recursion.

rec {
    x = y;
    y = x;
}

Probable bugs | Invalid antiquotation value

Reports expressions in antiquotations which evaluate to something that cannot be coerced into a string. Expressions evaluating to null are ignored in attribute declarations.

Probable bugs | Merging options in modules with `//`

If you merge multiple sets of options with // instead of mkMerge, one of both sets might be ignored.

Probable bugs | Option defined outside `config` attribute

Warns about options which are defined outside the config attribute in a module if there is a config or options attribute. In such case, the option would be ignored. Option definitions outside the config attribute are only respected if the module does not contain any attribute called config or options.

Probable bugs | Path does not exist

Reports path literals which point to non-existent files. This inspection should have an option to ignore absolute pathes.

Probable bugs | Quoted path

Reports string literals when path literals should be used. When a string literals is used as relative path, the path might be resolved differently depending on how the file is loaded. This can be avoided by using path literals which are always resolved relative to the containing file.

Redundancy | Unused attribute or variable

Reports variables and attributes which are never used.

let var = "unused"; in true

or

let
    var = { attr1 = "used"; attr2 = "unused"; };
in
    var.attr1

Verbose or redundant code constructs | Redundant antiquotation

Reports unnecessary antiquotations in strings and attribute paths.

"a ${"b"} c" // → "a b c"
var.${"attr"} // → var."attr"

Verbose or redundant code constructs | Redundant inherit

Reports redundant usage of the inherit keyword. Specifically, this inspection reports the inheritance of a local variable within a let expression.

let x = 42; in
let inherit x; in
x

Verbose or redundant code constructs | Redundant parenthesis

Reports redundant parenthesis.

(1 + 2) + 3

This inspection should have an option to allow clarifying parenthesis which doesn't change the meaning but clarify the precedence.

(1 * 2) + 3

Verbose or redundant code constructs | Redundant quotes in attribute path

Reports unnecessary quotes in an attribute path.

var."attr" // → var.attr
var."${...}" // → var.${...}

Verbose or redundant code constructs | Successive let expressions can be merged

Reports let expressions which have another let expression as its direct parent. For example

let
    var1 = 18;
in
    let
        var2 = 24;
    in
        var1 + var2

can be simplified into

let
    var1 = 18;
    var2 = 24;
in
    var1 + var2

Verbose or redundant code constructs | Unnecessarily escaped character

Reports unnecessarily escaped characters in strings.

''\"'' // → ''"''
"\$" // → "$"

Visibility | Variable hides built-in

Reports variable declarations which hide built-in variables like true, false, null and import.

let false = true; in false

Visibility | Variable hides other variable

Reports variable declarations which hide other variables.

let var = ...; in
let var = ...; in
...

This inspection should have an option to include or exclude with expressions.

This Wiki page might also contain some inspirations: https://nixos.wiki/wiki/Nix_Language_Quirks

com.intellij.openapi.editor.ex.util.LexerEditorHighlighter(org.nixos.idea.lang.NixLexerAdapter): Error updating after DocumentEventImpl

Gogland 171.4694

<< com.intellij.openapi.editor.ex.util.LexerEditorHighlighter(org.nixos.idea.lang.NixLexerAdapter): Error updating after DocumentEventImpl[myOffset=112, myOldLength=0, myNewLength=14, myOldString='', myNewString='"haproxy.conf"'].

com.intellij.openapi.editor.ex.util.LexerEditorHighlighter$InvalidStateException: com.intellij.openapi.editor.ex.util.LexerEditorHighlighter(org.nixos.idea.lang.NixLexerAdapter): Error updating after DocumentEventImpl[myOffset=112, myOldLength=0, myNewLength=14, myOldString='', myNewString='"haproxy.conf"'].
at com.intellij.openapi.editor.ex.util.LexerEditorHighlighter.documentChanged(LexerEditorHighlighter.java:327)
at com.intellij.openapi.editor.impl.DocumentImpl.changedUpdate(DocumentImpl.java:789)
at com.intellij.openapi.editor.impl.DocumentImpl.updateText(DocumentImpl.java:722)
at com.intellij.openapi.editor.impl.DocumentImpl.insertString(DocumentImpl.java:480)
at com.intellij.openapi.editor.EditorModificationUtil.insertStringAtCaretNoScrolling(EditorModificationUtil.java:130)
at com.intellij.openapi.editor.EditorModificationUtil.insertStringAtCaret(EditorModificationUtil.java:95)
at com.intellij.openapi.editor.EditorModificationUtil.insertStringAtCaret(EditorModificationUtil.java:87)
at com.intellij.codeInsight.editorActions.PasteHandler.lambda$doPaste$0(PasteHandler.java:196)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1023)
at com.intellij.codeInsight.editorActions.PasteHandler.doPaste(PasteHandler.java:194)
at com.intellij.codeInsight.editorActions.PasteHandler.execute(PasteHandler.java:121)
at com.intellij.codeInsight.editorActions.PasteHandler.doExecute(PasteHandler.java:74)
at com.intellij.openapi.editor.actionSystem.EditorActionHandler$4.perform(EditorActionHandler.java:217)
at com.intellij.openapi.editor.actionSystem.EditorActionHandler.doIfEnabled(EditorActionHandler.java:109)
at com.intellij.openapi.editor.actionSystem.EditorActionHandler.execute(EditorActionHandler.java:214)
at com.intellij.openapi.editor.actionSystem.EditorAction.lambda$actionPerformed$0(EditorAction.java:98)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:149)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:109)
at com.intellij.openapi.editor.actionSystem.EditorAction.actionPerformed(EditorAction.java:107)
at com.intellij.openapi.editor.actionSystem.EditorAction.actionPerformed(EditorAction.java:86)
at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:215)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:232)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$1.performAction(IdeKeyEventDispatcher.java:570)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.lambda$processAction$2(IdeKeyEventDispatcher.java:619)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:193)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:618)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.inInitState(IdeKeyEventDispatcher.java:477)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:211)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:633)
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)
Caused by: java.lang.IndexOutOfBoundsException: Wrong offset: 112. Should be in range: [0, 101]
at com.intellij.openapi.editor.ex.util.SegmentArray.offsetOutOfRange(SegmentArray.java:92)
at com.intellij.openapi.editor.ex.util.SegmentArray.findSegmentIndex(SegmentArray.java:106)
at com.intellij.openapi.editor.ex.util.LexerEditorHighlighter.documentChanged(LexerEditorHighlighter.java:173)
... 35 more

Update for 2020.3

IntelliJ version 2020.3 reports the plugin to be incompatible. Not sure if it is actually incompatible or if it is just complaining because until-build is set to 202.* (aka 2020.2.*). I might be able to look at it myself but probably not this week.

Support for 2021.3

Hello,

I started experimenting with nix and wanted to install this plugin, however it doesn't seem to be supported for version 2021.3 as it's not letting me install / find it in the marketplace.

Can we get a new version of the plugin supporting the newest IntelliJ version? Thank you.

Add support for nix-shell in JetBrains products

This might be a lot of work but it would be awesome if you could use nix-shell inside JetBrains products (e.g. activating shell.nix of your current project).

I have a lot of friends who use virtualenv instead of nix just because PyCharm (the python IDE by JetBrains) have builtin support for it.

What do you think about it?

Include LSP Support

There are a few language servers out there for nix. It would be great if you could use those from within JetBrains Products. An example library to do this 'quick' and 'dirty' would be https://github.com/ballerina-platform/lsp4intellij. Other than that, JetBrains Products started allowing plugin developers to communicate with LSPs from the Plugin, starting from 2023.2 (see: Language Server Protocol for Plugin Developers)
Would love to be able to use LSPs in combination with IntelliJ, and thank you in advance for your time :)

Add support for PhpStorm

Hi! I'd like to request support for PhpStorm. Would that be possible? I've seen you also support WebStorm and I'm not sure if there is a big difference, really.

Provide instructions how to use this plugin

I installed nix-idea plugin, and it seems to don't do anything useful:

  • syntax highlighting is minimal (only string literals and ;s are displayed with a different color)
  • ctrl+b (go to definition) doesn't work
  • ctrl+q (show documentation) doesn't work
  • no way to run .nix files directly from IntelliJ
  • when I on purpose introduce an error (e.g. non-existing parameter name) - no error is shown

Does it need an extra setup? Or it simply doesn't work in IntelliJ 2022.2.2? Nix is installed in my system the standard way into /nix.

Add color settings

It would be nice to have some settings to choose colors. Currently, most of the code use the default color, but I would like to colorize it a bit more (purple for keys, yellow for function names, ...).

Set “Trader” or “Non-Trader” State in JetBrains Account

Hi @pSub, I think nix-idea is currently hosted on your account of JetBrains Marketplace, right? I got an email that all profiles have to specify whether they are a “trader” or a “non-trader”. If this option is not specified, we will not be able to publish any updates as of February 1, 2024.

Hello,

For compliance reasons, as of February 1, 2024, plugin updates will only be accepted if the plugin vendor has declared whether they can or cannot be considered a trader pursuant to the Omnibus Directive 2019/2161. Further details about the requirements can be found here.

Please check your vendor profile and update your vendor status as appropriate.

Thank you for your cooperation,

The JetBrains Marketplace team
The Drive to Develop

The rule seems to be required due to some legal changes in the EU. I am not quite sure how to understand the documentation. If we specify “non-trader”, it seems like JetBrains will somehow inform users, that consumer protection laws may not apply to the plugin. I guess specifying non-trader is the safer option, but not sure if we can just decide that on our own. Do you have any idea?

Status update

Seems like this plugin not compatible with latest intellij editors. Is this project still maintained?

<list expr> or NixTokenType.] expected

Hi!

I have this line in a set: networking.firewall.allowedTCPPorts = [ 8080 ]; and it's being highlighted as this syntax error: <list expr> or NixTokenType.] expected, got '8080'.

But nix-ops consumes the file without any issue, which makes me say it is valid syntax.

Plugin version: 0.2.0.1
IDE: Goglang 1.0 EAP

Prevents opening the global settings dialog on 2017.2

Hey,

After the 2017.2 update this plugin completely kills opening the settings dialog (Cmd-, on Mac, Ctrl-Alt-S Win). The trace for Mac is

2017-07-18 16:02:41,895 [  94848]  ERROR - openapi.options.ConfigurableEP - Either do the specified parameters not match any of the following constructors: [] or the constructors were not accessible for 'class org.nixos.idea.settings.NixIDEASettings' 
org.picocontainer.PicoInitializationException: Either do the specified parameters not match any of the following constructors: [] or the constructors were not accessible for 'class org.nixos.idea.settings.NixIDEASettings'
	at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.getGreediestSatisfiableConstructor(CachingConstructorInjectionComponentAdapter.java:187)
	at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.doGetComponentInstance(CachingConstructorInjectionComponentAdapter.java:92)
	at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.instantiateGuarded(CachingConstructorInjectionComponentAdapter.java:80)
	at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.getComponentInstance(CachingConstructorInjectionComponentAdapter.java:63)
	at com.intellij.openapi.extensions.AbstractExtensionPointBean.instantiate(AbstractExtensionPointBean.java:75)
	at com.intellij.openapi.options.ConfigurableEP$ClassProducer.createElement(ConfigurableEP.java:341)
	at com.intellij.openapi.options.ConfigurableEP.createConfigurable(ConfigurableEP.java:267)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.a(ConfigurableWrapper.java:58)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.getConfigurable(ConfigurableWrapper.java:117)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.cast(ConfigurableWrapper.java:98)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.getId(ConfigurableWrapper.java:194)
	at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.groupConfigurables(ConfigurableExtensionPointUtil.java:269)
	at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:145)
	at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:136)
	at com.intellij.ide.actions.ShowSettingsUtilImpl.getConfigurableGroups(ShowSettingsUtilImpl.java:67)
	at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:63)
	at com.intellij.ide.MacOSApplicationProvider$Worker.a(MacOSApplicationProvider.java:118)
	at com.intellij.ide.MacOSApplicationProvider$Worker.b(MacOSApplicationProvider.java:212)
	at com.intellij.openapi.application.TransactionGuardImpl.a(TransactionGuardImpl.java:86)
	at com.intellij.openapi.application.TransactionGuardImpl.b(TransactionGuardImpl.java:72)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.a(LaterInvocator.java:416)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:399)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
	at java.awt.EventQueue.access$500(EventQueue.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:715)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
	at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
	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)
2017-07-18 16:02:41,895 [  94848]  ERROR - openapi.options.ConfigurableEP - IntelliJ IDEA 2017.2  Build #IU-172.3317.76 
2017-07-18 16:02:41,895 [  94848]  ERROR - openapi.options.ConfigurableEP - JDK: 1.8.0_152-release 
2017-07-18 16:02:41,895 [  94848]  ERROR - openapi.options.ConfigurableEP - VM: OpenJDK 64-Bit Server VM 
2017-07-18 16:02:41,895 [  94848]  ERROR - openapi.options.ConfigurableEP - Vendor: JetBrains s.r.o 
2017-07-18 16:02:41,895 [  94848]  ERROR - openapi.options.ConfigurableEP - OS: Mac OS X 
2017-07-18 16:02:41,895 [  94848]  ERROR - openapi.options.ConfigurableEP - Last Action: ShowProjectStructureSettings 
2017-07-18 16:02:41,895 [  94848]  ERROR - openapi.options.ConfigurableEP - Assertion failed: Bundle missed for org.nixos.idea.settings.NixIDEASettings 
java.lang.Throwable
	at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:168)
	at com.intellij.openapi.options.ConfigurableEP.getDisplayName(ConfigurableEP.java:72)
	at com.intellij.openapi.options.ConfigurableEP.toString(ConfigurableEP.java:279)
	at java.lang.String.valueOf(String.java:2994)
	at java.lang.StringBuilder.append(StringBuilder.java:131)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.getConfigurable(ConfigurableWrapper.java:119)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.cast(ConfigurableWrapper.java:98)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.getId(ConfigurableWrapper.java:194)
	at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.groupConfigurables(ConfigurableExtensionPointUtil.java:269)
	at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:145)
	at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:136)
	at com.intellij.ide.actions.ShowSettingsUtilImpl.getConfigurableGroups(ShowSettingsUtilImpl.java:67)
	at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:63)
	at com.intellij.ide.MacOSApplicationProvider$Worker.a(MacOSApplicationProvider.java:118)
	at com.intellij.ide.MacOSApplicationProvider$Worker.b(MacOSApplicationProvider.java:212)
	at com.intellij.openapi.application.TransactionGuardImpl.a(TransactionGuardImpl.java:86)
	at com.intellij.openapi.application.TransactionGuardImpl.b(TransactionGuardImpl.java:72)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.a(LaterInvocator.java:416)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:399)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
	at java.awt.EventQueue.access$500(EventQueue.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:715)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
	at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
	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)
2017-07-18 16:02:41,896 [  94849]  ERROR - openapi.options.ConfigurableEP - IntelliJ IDEA 2017.2  Build #IU-172.3317.76 
2017-07-18 16:02:41,896 [  94849]  ERROR - openapi.options.ConfigurableEP - JDK: 1.8.0_152-release 
2017-07-18 16:02:41,896 [  94849]  ERROR - openapi.options.ConfigurableEP - VM: OpenJDK 64-Bit Server VM 
2017-07-18 16:02:41,896 [  94849]  ERROR - openapi.options.ConfigurableEP - Vendor: JetBrains s.r.o 
2017-07-18 16:02:41,896 [  94849]  ERROR - openapi.options.ConfigurableEP - OS: Mac OS X 
2017-07-18 16:02:41,896 [  94849]  ERROR - openapi.options.ConfigurableEP - Last Action: ShowProjectStructureSettings 
2017-07-18 16:02:41,896 [  94849]  ERROR - pplication.impl.LaterInvocator - Argument for @NotNull parameter 'pathToBundle' of com/intellij/AbstractBundle.getResourceBundle must not be null 
java.lang.IllegalArgumentException: Argument for @NotNull parameter 'pathToBundle' of com/intellij/AbstractBundle.getResourceBundle must not be null
	at com.intellij.AbstractBundle.getResourceBundle(AbstractBundle.java)
	at com.intellij.openapi.options.ConfigurableEP.getDisplayName(ConfigurableEP.java:73)
	at com.intellij.openapi.options.ConfigurableEP.toString(ConfigurableEP.java:279)
	at java.lang.String.valueOf(String.java:2994)
	at java.lang.StringBuilder.append(StringBuilder.java:131)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.getConfigurable(ConfigurableWrapper.java:119)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.cast(ConfigurableWrapper.java:98)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.getId(ConfigurableWrapper.java:194)
	at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.groupConfigurables(ConfigurableExtensionPointUtil.java:269)
	at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:145)
	at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:136)
	at com.intellij.ide.actions.ShowSettingsUtilImpl.getConfigurableGroups(ShowSettingsUtilImpl.java:67)
	at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:63)
	at com.intellij.ide.MacOSApplicationProvider$Worker.a(MacOSApplicationProvider.java:118)
	at com.intellij.ide.MacOSApplicationProvider$Worker.b(MacOSApplicationProvider.java:212)
	at com.intellij.openapi.application.TransactionGuardImpl.a(TransactionGuardImpl.java:86)
	at com.intellij.openapi.application.TransactionGuardImpl.b(TransactionGuardImpl.java:72)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.a(LaterInvocator.java:416)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:399)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
	at java.awt.EventQueue.access$500(EventQueue.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:715)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
	at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:821)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:649)
	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)

New automatic checks for pull requests

Since travis-ci.org is ceased, there are no-longer any automatic builds verifying the pull requests of this repository. While it is possible to migrate to travis-ci.com, I have no idea who would be responsible for that. Since we are already using GitHub Actions for our release process, I think I would just set up a workflow with GitHub Actions.

@Mic92 Do you have any objections? Do you know whether there are any guidelines regarding the use of GitHub Actions within the NixOS “organization” on GitHub? I could not find anything about that. I am just wondering because GitHub might eventually charge the organization for the usage if it is not using the free plan. (About billing for GitHub Actions)

Support RustRover 233.8264.22

Notification on startup:

Plugin error

Plugin 'NixIDEA' (version '0.4.0.10') is not compatible with the current version of the IDE, because it requires build 232.* or older but the current build is RR-233.8264.22

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.