GithubHelp home page GithubHelp logo

wileespaghetti / intellij-warden Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 2 KB

IntelliJ integration for the Warden orchestration tool

License: MIT License

warden intellij-plugin laravel magento1 magento2 docker linux macos phpstorm-plugin

intellij-warden's Introduction

intellij-warden

This plugin provides support for the Warden orchestration tool in PhpStorm and IntelliJ

Getting Started

Once stable, a public release will be made to the JetBrains Plugin Repository. For now you must install from one of the Jar files that are on the Releases page.

Installing

To install:

  • Download the latest jar file
  • Open the Settings/Preferences dialog
  • Select Plugins
  • On the Plugins page, click The Settings button and then click Install Plugin from Disk.
  • Select the plugin archive file and click OK.
  • Click OK to apply the changes and restart the IDE

Features

This project is still in the very early stages

Current

  • Adds the "Warden" module type that can be selected when you create a new project
  • Runs warden env-init to bootstrap the project
    • currently hard codes environment settings

Planned

  • Allow selecting the magento1, magento2, and laraval project types
  • Allow Warden environment to be customized as part of the project creation process
  • Integrate with the run configuration

Building

intellij-warden uses the standard Gradle build process.

Reporting issues

Please report any issues on https://github.com/WileESpaghetti/intellij-warden/issues

intellij-warden's People

Contributors

wileespaghetti avatar

Watchers

 avatar  avatar

intellij-warden's Issues

add syntax highlighting for `.env`

Technically speaking, Warden's .env file is a shell script, but it would probably make more sense to highlight it more like Docker env files.

Since .env is not unique to Warden, so we should validate the file by verifying that it contains

WARDEN_ENV_NAME=
WARDEN_ENV_TYPE=

Show environment type in status bar

Show the Warden environment type in the status bar.

We probably want to just show an icon for the environment type with the proper name showing up on hover

Prompt for Blackfire settings

When creating a new project
I want to configure the settings for Blackfire

The new project wizard should display a checkbox for enabling Blackfire.
If selected then the wizard will add another step that shows the Warden Blackfire settings which will get filled in after the project's .env file is generated

If possible it would be nice to automatically fill in as many settings as possible if there is oauth or something similar

Environment name field should default to project name

When creating a project the Environment name field should default to being in sync with the project name field. If the user modifies the field then that synchronization will be broken. If the user clears the field or sets it to the same as the project name, then the synchronization will be restored

add Warden to `Tools` menu

Add a menu item under Tools for Warden

Acceptance Criteria

Info Needed

Can URL for these can be hard-coded or if they are dependent on an .env file setting?

Should env start and env stop share a single menu entry that automatically detects state?

What is the difference between warden env up -d and warden env start?

Should we add a menu option for warden sync start?

  • this is automatic on MacOS when using Warden versions later than 0.3.0

Settings should respond to changes to `.env`

When a user updates Warden's .env file
Then related settings should update to reflect those changes.

Example: If you update TRAEFIK_DOMAIN then the web deployment's domain should update to the new domain.

We need to figure out a list of related items that would change

Service ToolWindow integration

Integration with the services tool window

  • start/stop warden global services
  • destroy/create environment
  • link to containers in the docker service window
  • links to open web pages in browser (phpmyadmin, portainer, etc.)

add description text about empty enivornment

if the environment field is empty then some text should show up below to inform the user that they will be prompted on create.

maybe have an environment for "prompt me..."?

need screenshot examples of how other plugins show this type of information

Prompt to create data source

The main project window should have a checkbox to enable automatically creating a new data source using the Warden database settings. If selected a new project level data source will be created.

I'm not sure if it would be beneficial to prompt for the data source name or other data source settings that are not a part of Warden

https://docs.warden.dev/configuration/database.html

Prompt to create database settings

The main project wizard page should show a checkbox to customize database settings. This will be displayed only if the environment type supports having a database.

If enabled a new wizard page will show up with the Warden Database Settings. These will be automatically filled in with the Warden defaults.

Detect projects using warden

When loading a project we should automatically detect if Warden is used

Possible detection methods

  • .env file
  • .warden/env file

prompt to pull docker images

might be beneficial to automatically pull the required docker images after creating the project to speed up the first start. needs to be done in the background to allow development

migrate old `.env` files

If I have an old .env file I should be able to migrate it to the .warden version.

When I open a project with an old environment file I should be prompted to update the environment file.

This might depend on a projects having a default warden version. There are probably other steps to add new features that got introduced in later version (new server containers, etc)

Use Warden to create new project

Use Warden to initialize a new project

  • Warden is a selectable type in the new project wizard
  • Warden environment type is selectable
  • WARDEN_ENV_NAME can be specified
  • projects are initialized using warden env-init using the selected environment type and name

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.