Giter VIP home page Giter VIP logo

tinymist's Introduction

Tinymist

Tinymist [ˈtaɪni mɪst] is an integrated language service for Typst [taɪpst]. You can also call it "微霭" [wēi ǎi] in Chinese.

It contains:

Features

Language service (LSP) features:

  • Semantic highlighting
    • Also known as "syntax highlighting".
  • Diagnostics
    • Also known as "error checking" or "error reporting".
  • Document symbols
    • Also known as "document outline" or "table of contents" in Typst.
  • Folding ranges
    • You can collapse code/content blocks and headings.
  • Goto definitions
    • Right-click on a symbol and select "Go to Definition".
    • Or ctrl+click on a symbol.
  • References
    • Right-click on a symbol and select "Go to References" or "Find References".
    • Or ctrl+click on a symbol.
  • Hover tips
    • Also known as "hovering tooltip".
  • Inlay hints
    • Inlay hints are special markers that appear in the editor and provide you with additional information about your code, like the names of the parameters that a called method expects.
  • Color Provider
    • View all inlay colorful label for color literals in your document.
    • Change the color literal's value by a color picker or its code presentation.
  • Code Lens
    • Should give contextual buttons along with code. For example, a button for exporting your document to various formats at the start of the document.
  • Rename symbols
  • Help with function and method signatures
  • Workspace Symbols
  • Code Action
    • Increasing/Decreasing heading levels.

Extra features:

  • Compiles to PDF on save (configurable to as-you-type, or other options)
  • Provides code lenses for exporting to various formats (PDF, SVG, PNG, etc.)
  • Provides a status bar item to show the current document's compilation status and words count.
  • Editor tools:
    • View a list of templates in template gallery. (tinymist.showTemplateGallery)
    • Click a button in template gallery to initialize a new project with a template. (tinymist.initTemplate and tinymist.initTemplateInPlace)
    • Trace execution in current document. (tinymist.profileCurrentFile)

Installation

Follow the instructions to enable tinymist in your favorite editor.

Packaging

Packaging status

Roadmap

After development for two months, most of the features are implemented. There are still some features to be implemented, but I would like to leave them in typst v0.12.0. I'll also pick some of them to implement on my weekends. Also please feel free to contribute if you are interested in the following features.

  • Documentation and refactoring: It is my current focus.
  • Spell checking: There is already a branch but no suitable (default) spell checking library is found.
  • Syntax Highlighting for embedded languages in raw blocks: It almost works, but it is disabled because of wrong syntax highlighting on syntax errors in the raw blocks.
  • Periscope renderer: It is disabled since vscode reject to render SVGs containing foreignObjects.
  • Inlay hint: It is disabled by default because of performance issues.
  • Find references of labels, dictionary fields, and named function arguments.
  • Go to definition of dictionary fields and named function arguments.
  • Autocompletion for raw language tags.
  • Improve symbol view's appearance.

Contributing

Please read the CONTRIBUTING.md file for contribution guidelines.

Acknowledgements

tinymist's People

Contributors

myriad-dreamin avatar quarticcat avatar enter-tainer avatar

Watchers

 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.