Git Product home page Git Product logo

hexa-vscode-bundle's Introduction

Hexa

Her name is [Geksa]

Telegram Chat Discord GitHub Feed Blog Book Website

Hexa is a high level, strictly typed programming language that compiles to JavaScript and native apps

Try Hexa online without installation

GitHub Sponsor Patreon Donate Telegram feed

Key features of Hexa

  • JavaScript-inspired syntax and behavior, feel yourself like at home!
  • Native performance with static types and optimizing compiler
  • Follows node.js (and browser) API
  • Fast compilation
  • Compiles to JavaScript, WebAssembly, osdev, LLVM, C, C++, ObjC, ... you name it! (WIP)
  • Transpilation to almost anything: Lua, AutoCAD Lisp, C#, PHP, etc (WIP)
  • Produces human-readable code for all targets
  • Null safety, crash resistance, pattern matching, classes (WIP)
  • Real multithreading, parallelism, async\await, no GC (WIP)
  • Smart type inference makes other typed languages look boring
  • Friendly and helpful error messages
  • Supports #!shebang and scripting (just call hexa script.hexa)
  • REPL (enable with just hexa command)
  • Metaprogramming with syntax-tree, generics and contracts (WIP)
  • Completely cross-platform
  • We are working on optional memory ownership model (similar to borrow checker) and side effects system (WIP)

WIP — Work in progress, coming soon

Download

  • kawaii is the development branch and accepts pull requests
  • artifacts are built from each kawaii branch commit

Stable

Unstable

Tools & IDE

AI Autocomplete

Install Codeium then open .hexa file and confirm experimental Hexa support.

Study

Build

You need to download latest long-term Node.js LTS. The Hexa Compiler is written in Hexa itself. Pre-built compiler (bootstrapper) already included in the repo.

git clone --recursive --depth 100 https://github.com/hexalang/Hexa.git
cd Hexa
node bootstrap.js hexa.json
node hexa-node.js hexa.json
# This results in a `hexa-node.js` file in the root of the repo
# Call `node hexa-node.js project.json` to build your projects

You may now add the folder into your PATH.

Learn more about compiler development

License

See LICENSE files for full license texts and headers of each file (files in same directory may use different licensing models). If license is not mentioned in header then LICENSE file in upper directory level to be considered.

Compiler and some tools are under Lesser GPL 3.0 (feel free to include as a library in closed source projects), standard libraries and examples are under MIT.

hexa-vscode-bundle's People

Contributors

acidicmercury8 avatar expwez avatar peyty avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

hexa-vscode-bundle's Issues

Update language server, ensure backward/forward compatibility

  • Option to use constant TCP connection instead of REST (btw use this mode by default?)
  • Handle in-compiler crash gracefully (this is done, refactor and commit)
  • Sidebar outline improvements, take types from Typer when possible?
  • Go to definition (Ctrl+Click) / Go to type definition
  • Ensure backward/forward compatibility
    • FP-style table of callbacks for kinds of lint reports (for things like hints, in future)
  • Highlight words, operators and blocks properly
  • More info on hover (var type & mutability, optimization opportunities, etc)
  • Refactoring features (like rename class/etc, warn about name clashes (global and within one file cause aliases))
  • Fix underline positions (use spans)
  • Find all refs
  • Dim unused
  • Other common LSP features to this list
  • Update snippets
  • Shallow type check (i.e. don't stop after some type errors)
  • Better cache
  • Dim unreachable code
  • Stop type check when desired lint info is reached (optimization)
  • Autorun Hexa server
  • Inline dimmed inferred types
    • for i TYPE in e
    • var v TYPE let v TYPE
    • Option to disable this
  • Lint of unsaved file
    • Project-related
    • Independent
  • Autocomplete improvements
    • Local vars/funcs in current block
    • : Type
    • Fields .HERE
    • Option to insert colons for arg names func(name:, name:) also always show them in autocomplete list

Upload to store next release

  • README
    • add some screenshots and features list
    • add command cone --how-to-install-from-cli example
  • Hexa path and PATH
  • Option to disable inline error reporting
    • Fix color of the inline error reporting (brighter red, generate from theme?)
  • Option to set linting delay
  • Open VSX Registry
  • Rename branch to kawaii and update protection rules

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.