Git Product home page Git Product logo

jamestiotio / compstruct-vscode Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 3.0 2.56 MB

VSCode Extension for Computation Structures Courseware (jsim, tmsim, bsim)

Home Page: https://marketplace.visualstudio.com/items?itemName=jamestiotio.compstruct-vscode

License: MIT License

JavaScript 4.59% TypeScript 95.41%
vscode-extension vscode linter syntax-highlighting jsim bsim tmsim computation-structures mit sutd

compstruct-vscode's Introduction

compstruct-vscode

VSCode Extension for Computation Structures Courseware (jsim, tmsim, bsim)

Installation

You can install this extension from the Visual Studio Code Marketplace or from the Open VSX Registry!

Description

This repository hosts a Visual Studio Code extension with rich language support for the courseware used in the (labs of) Computation Structures module (both MIT 6.004 and SUTD 50.002): jsim, tmsim and bsim.

These tools were originally developed by MIT:

  • JSim is a netlist simulator language which serves as a circuit simulator design environment.
  • BSim is a Beta ALU architecture simulator. The β is a RISC processor design (general-purpose 32-bit architecture) used for the course.
  • TMSim is a Turing Machine simulator.

Features

Currently available features:

  • Syntax Highlighting
  • Code Navigation (Folding)
  • Code Formatting (Comment Toggling, Auto-Indentation, Bracket-Matching, Bracket-Autoclosing & Bracket-Autosurrounding)
  • Snippet Completion (Auto Code Completion)
  • One click to run current file in JSim/BSim
  • Commands to run current file in JSim/BSim

Features in the works:

  • Semantic Highlighting
  • Linting (Syntax & Style Error Checking)
  • Refactoring
  • Debugging
  • IntelliSense (Hover Information, Parameter Info, Auto-Completion & Content Assist)
  • Code Navigation (Definition Jumps)
  • Language Configuration

You can request for more features by submitting an issue!

Feel free to also contribute via submitting a pull request! For contributors, please check the included tool documentations in the docs folder for your reference when further developing this extension!

Requirements

This section will describe any requirements and dependencies for this extension, as well as how to install and configure them for this extension to work properly.

Currently, only Microsoft Visual Studio Code (or its vendor-neutral open-source alternatives) is needed to run this extension. As more features are added to this extension, more requirements might be needed in the future, so do keep a lookout!

Extension Settings

The extension contributes the following settings (configuration):

  • compstruct-vscode.statusBarButton.JSim: Enable/Disable 'Run JSim' button in status bar
  • compstruct-vscode.statusBarButton.BSim: Enable/Disable 'Run BSim' button in status bar
  • compstruct-vscode.popups.findJarNotification: Show/Hide information message when finding .jar files

Known Issues

This section will call out known issues to help limit users opening duplicate issues against this extension.

JSim Continuation Lines Detection Issue

Multiline detection which spans across newline characters (and indicated by lines starting with the character +) might not be supported yet by the TextMate grammar engine as elaborated here. To add support for this feature, might need to migrate to Monarch instead of TextMate or implement a more sophisticated, real-time detector using TypeScript. Dynamic programmatic analysis could also be done via implementing a language server (which would be the ideal choice going forward, instead of simply only relying on declarative features).

Syntax Highlighting for Negative Numbers

More work needs to be done since attempts of using regular expressions to syntax-highlight negative numbers (i.e. including the hyphens) did not work as intended.

Additional Resources

Here are some available useful resources (such as syntax highlighting for other editors and official MIT source code for JSim, BSim and TMSim online editors):

compstruct-vscode's People

Contributors

dependabot[bot] avatar iangohy avatar imgbotapp avatar jamestiotio avatar shohamc1 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

compstruct-vscode's Issues

Publish extension to open-vsx.org

Hello,
Thank you for this extension.

Would it be possible to also publish to open-vsx.org?
This registry is typically used by default in Code - OSS because of legals reason. Therefore, for now, we need to download and install the extension manually.
Thanks.

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.