Can't create apex trigger from plugin

Issue #2460 resolved
Viktoriia Yefimova created an issue

After updating to the latest version of the Illuminated Cloud plugin, I noticed that the button to create an Apex Trigger was missing. It is not user-friendly to create an Apex Trigger in the org and then pull the source to the local machine. Also, as you can see in the attached screenshot, the button to create an LWC, was missed.

Comments (9)

  1. Scott Wells repo owner

    Hi. It doesn’t appear that your project is configured correctly based on the second screenshot as the meta.xml files are being displayed. Did you enable that explicitly? If not, it’s not recognizing those files as being under a source root directory. Can you please attach the project’s .iml file for review?

  2. Viktoriia Yefimova reporter

    Yes, ‘'meta.xml’ was enabled.

    This is my iml file

    <?xml version="1.0" encoding="UTF-8"?>
    <module type="IlluminatedCloud" version="4">
      <component name="FacetManager">
        <facet type="IlluminatedCloud" name="Illuminated Cloud">
          <configuration>
            <option name="connectionName" value="BRIEFING_EDGE" />
            <option name="connectionType" value="SFDX" />
            <option name="moduleContents">
              <ModuleContents>
                <option name="contentSelectionType" value="LOCAL_FILES" />
                <option name="packageXmlRelativePath" value="manifest/package.xml" />
              </ModuleContents>
            </option>
          </configuration>
        </facet>
      </component>
      <component name="NewModuleRootManager" inherit-compiler-output="true">
        <exclude-output />
        <content url="file://$MODULE_DIR$">
          <sourceFolder url="file://$MODULE_DIR$/config" type="java-resource" />
          <sourceFolder url="file://$MODULE_DIR$/force-app" isTestSource="false" />
          <excludeFolder url="file://$MODULE_DIR$/.sfdx" />
          <excludeFolder url="file://$MODULE_DIR$/.sf" />
        </content>
        <orderEntry type="jdk" jdkName="IlluminatedCloud (salesforce-app/BRIEFING_EDGE)" jdkType="IlluminatedCloud" />
        <orderEntry type="sourceFolder" forTests="false" />
      </component>
    </module>
    

  3. Viktoriia Yefimova reporter

    Could it be caused by an outdated IntelliJ IDEA version? Notification just appeared to me, that my version is outdated for the last plugin version.

  4. Scott Wells repo owner

    I’d be surprised if that made a difference, but I certainly encourage users to stay on the latest-and-greatest of both at all times. My guess is that it’s a side-effect of yesterday’s build which added the notion of a LOCAL_FILES subscription that I see reflected in your .iml file. I’m trying to reproduce the behavior locally now in a project that is modeled after that one. I’ll let you know how that goes.

  5. Scott Wells repo owner

    Okay, I’ve tried to configure a project that’s as close as possible to yours. Here’s the .iml file:

    <?xml version="1.0" encoding="UTF-8"?>
    <module type="IlluminatedCloud" version="4">
      <component name="FacetManager">
        <facet type="IlluminatedCloud" name="Illuminated Cloud">
          <configuration>
            <option name="connectionName" value="BRIEFING_EDGE" />
            <option name="connectionType" value="SFDX" />
            <option name="moduleContents">
              <ModuleContents>
                <option name="contentSelectionType" value="LOCAL_FILES" />
                <option name="packageXmlRelativePath" value="manifest/package.xml" />
              </ModuleContents>
            </option>
          </configuration>
        </facet>
      </component>
      <component name="NewModuleRootManager" inherit-compiler-output="true">
        <exclude-output />
        <content url="file://$MODULE_DIR$">
          <sourceFolder url="file://$MODULE_DIR$/config" type="java-resource" />
          <sourceFolder url="file://$MODULE_DIR$/force-app" isTestSource="false" />
          <excludeFolder url="file://$MODULE_DIR$/.sfdx" />
          <excludeFolder url="file://$MODULE_DIR$/.sf" />
        </content>
        <orderEntry type="jdk" jdkName="IlluminatedCloud (salesforce-app/BRIEFING_EDGE)" jdkType="IlluminatedCloud" />
        <orderEntry type="sourceFolder" forTests="false" />
      </component>
    </module>
    

    and I properly get the New | Apex Trigger action:

    I even had to make a few tweaks from a newly-created project to ensure it looked like yours, specifically changing the module type from GENERAL_MODULE to IlluminatedCloud after the removal of the IC2-specific module type and changing the main source root directory from force-app/main/default to just force-app. Things worked properly both ways, though.

    So while I’d love to understand why this is happening so that I can fix it in the right location, given that this is blocking you from using core functionality, one option is to close the project, remove the .idea directory and .iml file (if it’s not already under the .idea directory), and reopen the project so that IC2 reconfigures it. If you do that and the problem is still present, we’ll definitely need to dig in considerably more.

  6. Viktoriia Nyzhnyk

    Hi Scott. Thank you so much for your suggestion with reconfiguring IC2 project. It took me some time, but I fixed this issue. The steps, what I did:

    1. remove .idea directory and .iml files from the project.
    2. update IntelliJ IDEA to the latest version.
    3. reopen the project using the last IntelliJ IDEA version and make all needed steps to reconfigure.

  7. Scott Wells repo owner

    Ah, okay. I'm glad that put you back into a good state. If you see such an issue recur, please don't hesitate to reopen this and we'll troubleshoot further.

  8. Log in to comment