Giter VIP home page Giter VIP logo

ballerina-tool-extension-methods's Introduction

Quality gate codecov

Architecture: Compiler Diagnostics based Approach

sequenceDiagram
    participant Bridge Tool
    participant MyScannerPlugin extends CompilerPlugin
    activate Bridge Tool
    Bridge Tool ->> Bridge Tool: Perform core scans
    Bridge Tool ->> MyScannerPlugin extends CompilerPlugin: Engage through package compilation
    activate MyScannerPlugin extends CompilerPlugin
    MyScannerPlugin extends CompilerPlugin ->> MyScannerPlugin extends CompilerPlugin: Report issues as diagnostics
    MyScannerPlugin extends CompilerPlugin ->> Bridge Tool: Get diagnostics
    deactivate MyScannerPlugin extends CompilerPlugin
    Bridge Tool ->> Bridge Tool: Filter Issue diagnostics
    Bridge Tool ->> Bridge Tool: Add Filtered issues to all issues array
    deactivate Bridge Tool

Ballerina Tool extension methods

Ballerina language has two main extension points:

  • Ballerina Tools
  • Ballerina Compiler Plugins

This project aims to extend the functionalities of a Ballerina tool via compiler plugins and simulate a simplified version of the Ballerina scan tool

Ballerina Tools

Allow developers to create custom Ballerina commands like:

bal bridge

Ballerina Compiler Plugins

Allow developers to extend features of the Ballerina compiler

import org/custom_compiler_plugin as _;

public function main(){
}

Prerequisites

The following software should be installed locally

Getting started

  1. Create the custom compiler plugin by following the instructions here

  2. Create the bal bridge tool by following the instructions here

  3. Navigate to the test-bridge-command directory

  4. Run "bal bridge" command

Scans-Test-Attempt-1 Scans-Test-Attempt-2 Scans-Test-Attempt-3 (Automatic analysis on SonarCloud enabled)

ballerina-tool-extension-methods's People

Contributors

thushara-piyasekara avatar xenowa 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.