Comments (4)
In addition to highlighting, I want to first focus on packaging, so it can be distributed without requiring others to build from source.
After that, I'm thinking about making a new language major mode that relies entirely on tree-sitter (instead of regexes), both as an experimentation, and as a reference for others to start using tree-sitter. My first choice right now would be a replacement for terraform-mode
, with code navigation (using tree-sitter to build a project-wide index).
I am particularly interested in implementing operations over the AST in the spirit of smartparens/paredit.
This is a cool idea, but I think trying to make a generic implementation right away is pretty hard. For each non-Lisp language, the types of node that these smart operations should act on would be different, and the set of interesting operations may be different as well. In addition to some core logic, there would be language-specific stuff (which may be made to be declarative, similar to how Atom uses CSS to map nodes to highlighting classes). IMO, experimenting with language-specific structural editing modes first will make it easier to define a generalized core.
from elisp-tree-sitter.
For each non-Lisp language, the types of node that these smart operations should act on would be different, and the set of interesting operations may be different as well. In addition to some core logic, there would be language-specific stuff (which may be made to be declarative, similar to how Atom uses CSS to map nodes to highlighting classes). IMO, experimenting with language-specific structural editing modes first will make it easier to define a generalized core.
Yes, this is exactly what I am looking for. If you don't mind I would like to put some effort into that. Please let me know whether you want that to be part of this project/repo or in a separate one.
from elisp-tree-sitter.
After that, I'm thinking about making a new language major mode that relies entirely on tree-sitter (instead of regexes), both as an experimentation, and as a reference for others to start using tree-sitter.
I think that at some point there could be a generic mode which uses tree-sitter for highlighting and language server for semantic highlights.
from elisp-tree-sitter.
If you don't mind I would like to put some effort into that.
Yeah sure, that would be great!
Please let me know whether you want that to be part of this project/repo or in a separate one.
I think a separate repo is better, as it would have more freedom for experimentation. Just let me know if you need help with the APIs, or have suggestions on adding more core functions.
from elisp-tree-sitter.
Related Issues (20)
- Doesn't highlight Rust documentation code examples
- Swift support, revisited. HOT 1
- wrong ELF class: ELFCLASS64 on RPI4 HOT 1
- `Unsupported Operating System: OpenBSD` HOT 7
- bin/build not work on linux because builtin cd will output the folder name. HOT 1
- tree-sitter languages download of windows binaries failed with error
- tsc-lang-abi-too-new when installing new language HOT 11
- Crash when large file contains an ERROR node
- Invalid version syntax: ‘[email protected] HOT 1
- Colors look wrong in haskell mode. HOT 3
- `tree-sitter-debug-mode` is broken
- Crash when loading one particular Markdown file HOT 7
- Reporting Vulnerability
- (ts-fold-indicators-mode) not working when running emacs from terminal
- How do I add a new grammer to this mode? HOT 2
- why the submodule langs pointed to an old commit?
- tree-sitter-hl-mode doesn't honor the :extend font face in single line comments HOT 1
- request to rebuild tsc-dyn.so with older Linux OS
- Provide `aarch64` build of `tsc-dyn.so` for AArch64 Linux
- Repetitions and Predicate Problems
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from elisp-tree-sitter.