Coder Social home page Coder Social logo

jasondaming / vscode-wpilib Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wpilibsuite/vscode-wpilib

0.0 0.0 0.0 3.48 MB

Visual Studio Code WPILib extensions

License: Other

JavaScript 0.98% C++ 0.20% Python 0.77% TypeScript 95.02% HTML 3.04%

vscode-wpilib's Introduction

VS Code WPILib

CI

This repository contains the WPILib VS Code extension, along with the standalone electron project that contains some of the functionality of the extension.

Build Dependencies

  • Node JS - Tested with Node 18.
  • Java - Tested with Java 17
  • VS Code - For development/debugging.
    • TS Lint Extension
    • Chrome Debug Extension
    • In order to debug the extension, you will need the extension dependencies for the extension. The Microsoft C++ extension and the Java extension pack.

Setting up Dependencies

In order to properly build, there is some setup that needs to occur.

  1. Go into vscode-wpilib and run npm install
  2. Go into into wpilib-utility-standalone and run npm install
  3. From the root, run ./gradlew updateAllDependencies. This will grab the templates and examples from WPILib, and move the shared dependencies from the vscode extension to the standalone utility. This command will need to be reran any time you update the shared dependencies in the vscode project.
  4. Open the root folder in VS Code.

Building and Debugging

Once you have the project open in VS Code, there are 5 debugging targets set up.

  • Extension Will launch the extension to debug
  • Extension Tests Will launch the extension tests
  • Standalone: Main Will launch the standalone project. The debugger will be attached to the host process
  • Standalone: Renderer Will attach to the standalone projects renderer process
  • Standalone: All Will launch the standalone project, and attach to the renderer. This will attach 2 separate debuggers.

In addition, each project has a compile and a lint npm command. These will compile and lint their respective projects. Please run these before submitting any PR, as CI will check these. In addition, VS Code's lint does not detect the same lint errors as running lint manually would.

Testing

We highly recommend you do any testing by launching in the debugger. Unlike Eclipse, local building is not required to update WPILib versions, so building files to install is not exactly a simple setup. We will be posting instructions for this later, but not currently.

Warning about shared dependencies.

Because of limitiations in typescript, we cannot easily have a shared library that works in both the vscode extension and the standalone utility. Because VS Code is the primary platform, the files are stored in that folder. Anything in the following folder is considered shared.

  • vscode-wpilib/shared
  • vscode-wpilib/riolog/shared In these, any updates from the the standalone project will not be see in the vscode project, nor will they get committed to git. Please edit these files in the VS Code extension to apply changes.

vscode-wpilib's People

Contributors

thadhouse avatar peterjohnson avatar sciencewhiz avatar rzblue avatar prateekma avatar jacibrunning avatar codingkoopa avatar moesoha avatar starlight220 avatar wuyuanhun avatar austinshalit avatar calcmogul avatar zhiquanyeo avatar mmhobi7 avatar agasser avatar bgoetz avatar jcaporuscio avatar jaikobpark avatar losteds avatar lhvy avatar hadley31 avatar richiksc avatar srimanachanta avatar tjquillan avatar carbotaniuman avatar

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.