GithubHelp home page GithubHelp logo

oslabs-beta / svisualize Goto Github PK

View Code? Open in Web Editor NEW
70.0 3.0 1.0 38.74 MB

Visualize your svelte components as you code using D3

Home Page: https://svisualize.dev

License: MIT License

Svelte 30.39% CSS 7.51% JavaScript 11.26% TypeScript 50.84%
component-architecture d3 svelte tree-structure typescript vscode-extension

svisualize's Introduction

Svisualize is a Svelte component visualizer for developers to see the shape of their application as they code.
Find out more at Svisualize!

Svelte JavaScript TypeScript D3.js Node
HTML CSS Webpack Tailwind CSS Mocha

Table of Contents

Overview

demo Large-scale Javascript projects can contain a multitude of components. Svelte, a newer Javascript framework, lacks a component visualization tool within Visual Studio Code. Svisualize is a VS Code extension that gives developers the ability to visualize their Svelte components as they create their project. With Svisualize you can:

  • Visualize each Svelte component as a node on the component tree
  • View parent-child hierarchy from ANY root file
  • View props present within each component by hovering it's component node
  • Open files on node click
  • Update the tree structure on change in codebase by clicking the update button

Installation

Svisualize extension can be installed through the VS Code Marketplace.

  1. Start by clicking the Extensions icon in the Activity Bar on the side of VS Code or by using the View: Extensions command (Ctrl/Cmd+Shift+X).
  2. Search for 'svisualize' and click the "install" button.

marketplace

  1. Upon completion, VS Code will have installed the extension and Svisualize is ready for use.

Getting Started

After Svisualize is installed in VS Code,

  • You will find a new tree icon added to the Activity Bar on the left-hand side. Click on it to launch the extension

marketplace

  • Select a root file to render your first tree

** Svisualize currently only supports SINGLE PAGE SvelteKit applications **

Roadmap

  • Support for mutli-page SvelteKit applications
  • Add additional functionality within the visualizer
    • Delete files on node click
    • Create new child files from parent nodes
  • More UX/UI options within visualizer (e.g. changing color of nodes based on user preferences)
  • Create a light mode on toggle for webview
  • Addition of a status bar button to toggle extension activation and deactivation
  • Implement more testing

Contributions

Svisualize is an open source project and we welcome iterations and contributions. If you have a suggestion, please follow the steps below or open an issue to discuss your idea.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b newFeature)
  3. Commit your Changes (git commit -m 'added a newFeature')
  4. Push to the Branch (git push origin newFeature)
  5. Open a Pull Request

Don't forget to give the project a star! Thank you for your support!

Meet Our Team

a photo of Anatoliy Sokolov
Lumeng Li
Linkedin | GitHub
a photo of Brian Henkel
Jason Huang
Linkedin | GitHub
a photo of Jordan Querubin
Kris Fragata
Linkedin | GitHub
a photo of Nathan Peel
Caleb Belkin
Linkedin | GitHub

svisualize's People

Contributors

lumengli7 avatar krisfragata avatar itsdayson avatar calebbelkin avatar

Stargazers

Anthony Christmantoro avatar  avatar  avatar Roger Lucas avatar  avatar  avatar Tran Quoc Cong Dinh avatar Carlton Keedy avatar Drew Williams avatar Kyle Malloy avatar Michael Becker avatar Jose Lazo avatar  avatar Manrike Villalobos BΓ‘ez avatar Greg Wolanski avatar MCMXC avatar work.jeff.zhang avatar Howard Sun avatar  avatar SHYAKA Davis avatar Ari Benkov avatar Moritz Gruber avatar Victoria Obregon avatar Allison Scott avatar Emma Ijiogbe avatar Saenyakorn Siangsanoh avatar Lars van der Bijl avatar Abdelhalim Riache avatar  avatar  avatar Jesse Rosengrant avatar Karol Krzywon avatar PiterDev avatar  avatar  avatar Clinks avatar Sean Simpson avatar  avatar Carter Sarkela avatar Neul Seo avatar Joseph McGarry avatar Brian Yan avatar Julien Kerekes avatar Paul Burger avatar Yann Bougaret avatar  avatar  avatar  avatar Leonardo Axel Setyanto avatar  avatar Kellsy Nava-LΓ³pez avatar Marselena Sequoia avatar Dillon Hale avatar Jansen Domgouen avatar Trevor Hilz avatar  avatar  avatar Anthony Chaiditya avatar  avatar  avatar Kelly Chandler avatar  avatar  avatar May Wilcher avatar Murtada Altarouti avatar Callum Miles avatar Dylan Briar avatar Ariel Maor avatar  avatar Raymond Huang avatar

Watchers

Schno Mozingo avatar  avatar SHYAKA Davis avatar

Forkers

524c

svisualize's Issues

Support monorepos

Problem

When observing the tree generated by svisualize, most components that we are using are missing.

I assume this is because we use a Turborepo monorepo, and most components come from an import like import { Button } from @org/ui

It seems that only relative imports like ./Button are resolved and visualized properly.

Solution

Not sure what the exact problem is, but I assume that https://pnpm.io/workspaces are not supported yet.

Additional information

No response

πŸ‘¨β€πŸ‘§β€πŸ‘¦ Contributing

  • πŸ™‹β€β™‚οΈ Yes, I'd love to make a PR to implement this feature!

Support displaying file path in addition to file name

Problem

For bigger projects, it becomes hard to use svisualize properly since it is impossible to distinguish which e.g. +page.svelte will be opened:

image

Solution

VSCode solves this by e.g. displaying file path in addition to file name, but there might be also other solutions to this problem.

Additional information

No response

πŸ‘¨β€πŸ‘§β€πŸ‘¦ Contributing

  • πŸ™‹β€β™‚οΈ Yes, I'd love to make a PR to implement this feature!

Unable to install extension with my current VSCode - 1.85.1

Description

Currently getting this error when trying to install the extension

Can't install 'svisualize-dev.svisualize' extension because it is not compatible with the current version of Visual Studio Code (version 1.85.1).

Reproduction

Try to install the extension with vcode v - 1.85.1

System information

Version: 1.85.1 (Universal)
Date: 2023-12-13T09:48:06.308Z (2 mos ago)
Electron: 25.9.7
ElectronBuildId: 25551756
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: 11.4.183.29-electron.0
OS: Darwin arm64 23.3.0

Additional information

No response

πŸ‘¨β€πŸ‘§β€πŸ‘¦ Contributing

  • πŸ™‹β€β™‚οΈ Yes, I'd love to make a PR to fix this bug!

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.