Coder Social home page Coder Social logo

markmcculloh / vscode-projen Goto Github PK

View Code? Open in Web Editor NEW
19.0 2.0 1.0 876 KB

Visual Studio Code Extension for Projen

Home Page: https://marketplace.visualstudio.com/items?itemName=MarkMcCulloh.vscode-projen

License: Apache License 2.0

TypeScript 97.25% JavaScript 2.75%
vscode-extension projen template project

vscode-projen's Introduction

Projen + VSCode = 💖

Add some projen flavor to VSCode!

Features

  • Commands
    • Run projen
    • Run tasks
    • Generate new project
    • Generate new project from external type
  • Task List
    • Run tasks in list with a click
    • List steps and subtasks (and their steps too)
  • Dependency List
    • List packages with types and pinned versions
  • Managed Files/Folders
    • Show list of files managed by projen (either directly or indirectly, like a lockfile)
    • De-emphasize files managed by projen in explorer and decorate it with a "PJ" badge

Changelog

Changelog is kept via GitHub Releases.

Screenshots

Basic Overview

Files

Tasks

Project Types

vscode-projen's People

Contributors

johanneskonings avatar markmcculloh avatar

Stargazers

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

Watchers

 avatar  avatar

Forkers

johanneskonings

vscode-projen's Issues

[Bug] Information update triggers multiple times per `npx projen`

Describe the bug
When the filewatcher for the .projen folder triggers, it triggers multiple times (due to there being multiple files). This is inefficient because the whole point of the file watcher is to trigger when projen runs, not necessarily when each file changes.

Expected behavior
The heuristic for detecting that projen has run (and thus the files in .projen have changed) must be more efficient and only run once per "npx projen".

[Feature] Notify user of change to projenrc

Is your feature request related to a problem? Please describe.
When changing projenrc, one may forget to run projen.

Describe the solution you'd like
If projen has not been run since the last change to the projen file, a popup should come up asking if the user wants to run npx projen.

[Feature] Support multi-root workspace

Is your feature request related to a problem? Please describe.
The extension does not function when a workspace has multiple folders

Describe the solution you'd like
Show all valid projen projects at the root of each folder in a workspace

[Feature] Show dependencies as a hierarchal list

Is your feature request related to a problem? Please describe.
The dependency view is not making good use of the real estate.

Describe the solution you'd like
Show hierarchal list of dependencies, by type.

[Feature] Dynamic project prop list during "new" command

Depends on the implementation of #8

Is your feature request related to a problem? Please describe.
When creating a project, you are asked for optional args to pass to the "new" command. Without knowing what args to pass ahead of time, this is basically unusable.

Describe the solution you'd like
After choosing a project type, All featured arguments should be shown as options to set in the dialog provided.

Additional context
This may not be possible and/or not worth the effort until projen itself makes this information more available.

[Feature] Add option to completely hide managed files from explorer

Is your feature request related to a problem? Please describe.
Managed files can currently be deemphasized and decorated in the explorer, but they're still present.

Describe the solution you'd like
Create option in extension settings to completely exclude files. Ideally, this would be done without messing with user settings (e.g. files.exclude) but that may be the only possible (See https://github.com/redvanworkshop/explorer-exclude-vscode-extension).

Additional context
This should perhaps instead be a feature built into projen. This way projen can manage hidden files as a workspace setting in .vscode. The primary benefit of not doing that is that the extension can toggle visibility easily.

[Feature] Move VSCodeExtensionProject to projen repo

Is your feature request related to a problem? Please describe.
The VSCodeExtensionProject would be a great addition to the available projects in projen. It can even directly compete with the existing yeoman template.

The project type would need to be hardened with more best practices and options, and the API needs to be fully documented.

Describe the solution you'd like
Migrate current project type to projen and then consume it here. This should probably wait until this project matures a little bit.

[Feature] Better empty state

Is your feature request related to a problem? Please describe.
Currently, when no projen projects are detected, the projen view still shows up but it's just empty. No feedback or calls to action.

Describe the solution you'd like
The "empty" view should tell the user that no projen projects are detected. It would also be nice to have a button to run the "projen new" command.

[Bug] Some files are not marked as projen-generated

Describe the bug
YAML files generated by projen aren't marked in the file tree as generated by projen. These files start with # ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen". so I think they should be tagged.

To Reproduce
Try loading https://github.com/projen/projen with the extension, and inspect the .github/workflows/ folder.

Expected behavior
auto-approve.yml and other files on should be tagged with "PJ".

Screenshots
N/A

Desktop (please complete the following information):

  • OS: macOS 11.6.1

Additional context
N/A

[Feature] Add basic configuration

Is your feature request related to a problem? Please describe.
This extension is unreasonably opinioned with no way to change behaviors.

Describe the solution you'd like
Add configurations for the following:

  • Managed file appearance (show PJ, change color, etc.)

[Feature] Deep introspection of current project

Is your feature request related to a problem? Please describe.
The only data easily available from projen is whatever is written to disk, which isn't everything.

Describe the solution you'd like
Read/parse the projenrc file somehow (AST?) to get some interesting meta-information to display to the user. Currently, the most interesting piece of information I can think of is to get the project type and the lib it came from. Information is power!

Additional context
This is probably not a reasonable request to do generically at the moment. Would be worth keeping on eye on projen/projen#1086 to see if that further enables something for this.

[Bug] Files still appear to be managed after projen eject

Describe the bug
If I run "projen eject" it seems like all of the files still appear to be managed by projen initially. I was able to fix it by reloading my window, but I wonder if there's a way to make this behavior automatic.

To Reproduce
Steps to reproduce the behavior:
Create a new projen project (npx projen new ...).
Open it in VS Code with the extension, and check that config files are tagged "PJ" in the file explorer.
Run npx projen eject from your command line.
Check VS Code file explorer and files still appear to be tagged with "PJ".

Expected behavior
I expected the file explorer to be updated with none of my files marked as projen managed.

Screenshots
If applicable, add screenshots to help explain your problem.

OS
macOS

[Feature] Dynamically list project IDs from a given jsii lib

Is your feature request related to a problem? Please describe.
The base project types from projen are only statically listed, and types from external libraries are not listed at all.

Describe the solution you'd like
When running the command to create a new project, the package should be fetched to determine available project types

[Bug] Projen tasks are not run from the project root

Describe the bug
When running projen tasks from the side panel, they are executed in the currently open terminal, in whatever folder you're in at that moment, resulting in a "Unknown command: x" error

To Reproduce
Steps to reproduce the behavior:

  1. In VSCode, have a terminal open in your project root
  2. Navigate to a subdirectory (e.g. cdk)
  3. In the extension sidebar, press ▶️ on any task (e.g. install)
  4. The task fails with: Unknown command: install

Expected behavior
The task is run successfully.

Desktop (please complete the following information):

  • OS: MacOS Big Sur

[Feature] Add "refresh" button to view

Is your feature request related to a problem? Please describe.
It's possible for the projen view to get stale.

Describe the solution you'd like
Add a button to the projen view to refresh it.

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.