- Laravel Suite
- Laravel Suite, tree-sitter based blade syntax highlighting and completion support for laravel blade files.
-
381 Recent Installs2151 Total Installs
-
This extension is allowed to:
- Read Files
- Launch Subprocesses
Readme
Laravel Suite
⚠️ Needless to say, if you have the Blade Extension installed, you need to uninstall or disable. Otherwise this extension won't work as expected
Sponsorship ❤️
If this project & tree-sitter-blade put a delightful smile on your face, don't forget to star ⭐ both projects or maybe sponsor... 👀
Introduction
This extension provides Laravel blade
file parsing based on a
tree-sitter-blade
🌳
tree-sitter-blade which was
created with this extension in mind.
Hoping for this extension to be an all in one for Laravel projects in
Nova, now that the tree-sitter-blade
project has reached a very stable stages
0.12.0+
Features
1. Integration with tree-sitter-blade
- It is up to date as of 12.x
2. Syntax highlighting and autocompletion support for all blade
directives
- including the custom if statements and related projects such as the much Livewire v3.0.
3. php
injection support
- Unlike traditional textmate based parsers, you will now get
php
injections at all the right spots required. (no morestring
highlighting as parameter or in blade attributes!) 🤘
4. Context aware autocompletion
- You get the correct autocompletion, exactly based on the location of your cursor in the document
- For example you do not get blade attribute autocompletion, if the cursor is not located in the attribute syntax tree
5. Support for indentation increase/decrease after pressing return key
6. Folding Support
7. Shell injection / Laravel Envoy
- You now get completion for Laravel envoy directives
- On top of that, the content of the tasks are correctly parsed as
shell
! 🤯
8. Commenting
- Since the
v2.0.0
thanks totree-sitter-blade v0.12.0
you can now use your global commenting shortcut to comment out in blade comments, and not inhtml
syntax!
9. Javascript injection for AlpineJS and Livewire
- From
v2.0.0
you will now get syntax highlighting and javascript injection for AlpineJS and Livewire attributes!
Staying up-to-date?
Just star ⭐ or watch 👀 Laravel Suite and tree-sitter-blade
Issues:
Tree-Sitter-Blade 🌳
If you see any problem with parsing, very likely it is related to the
tree-sitter-blade
. So please
raise an issue on that repo
Laravel Suite
Anything else please raise an issue on Laravel Suite repo
DisclaimerThis project is not approved, sponsored, or affiliated with Laravel, Laravel or its related projects
Changelog
v2.1.1 🚀
Bug Fix 🐞:
- HTML Theme selector improvement in highlights.scm
v2.1.0 🚀
Bug Fix 🐞:
- Support for ARM architecture
v2.0.0 🚀
This major release takes care of many of the bugs and shorcomings due to the way the blade files were parsed!
New Stuff ✨:
- Bumped the tree-sitter-blade to the very latest, which was written from ground up to fix the shortcommings!
- The parser is now 5x faster
- The comments now work as expected with your code editor global shortcut. NO for workarounds
- The
Javascript
is now injected in the appropiate attribute thanks to the tree-sitter-blade - AlpineJS
- Livewire
- The nested components are now correctly highlighted such as
<x-foo.bar ...
- Better and more accurate syntax highlighting, in fact better than the internal HTML!
- Livewire Completions
- Improved syntax aware completion, based on where the code is located now!
- Better and improved semantic tree structure, allowing you to find bugs in your code faster.
- Support for
@svg
- Fixed a bug relating to some parameter structures.
- Indentation should work as expected now!
- The parser is now using the ABI 15
v1.9.0
New Stuff ✨:
- Bumped
tree-sitter-blade
tov0.11.0
- Support for Inertia
@inertia
and@inertiahead
- Support for Ziggy
@routes
v1.8.0
New Stuff ✨:
- Bumped
tree-sitter-blade
tov0.10.0
- Support for the brand new Laravel
@use
directive - Support for
@js
v1.7.0
New Stuff ✨:
- Bumps
tree-sitter-blade
to v0.9.2 - Shell injection for laravel Envoy
- New directives
- Envoy
@servers
@import
@task
@story
@setup
- Hooks
@before
@after
@error
@success
@finished
- Notifications
@before
@slack
@discord
@telegram
@microsoftTeams
Bug Fix 🐞:
- parsing bug #20
v1.6.1
Bug Fix 🐞:
- Emmet extension should now work as expected with Blade files! #19 🙈
v1.6.0
New Stuff ✨:
- Temporary replacement support for commenting in Blade, as there is a conflict internally in Nova, when using injected languages
- There are three ways you can comments in blade files.
1. Typing {
2. typing "comment"
3. using CMD+\
shortcut
v1.5.0
New Stuff ✨:
- Bumps
tree-sitter-blade
to v0.7.0 - Full support Template Inheritance
@aware
@parent
- inline
@section
- nested
@section
with@endsection
or@show
end directive
v1.4.0
New Stuff ✨:
- Bumps
tree-sitter-blade
to v0.6.0 - Added support for
bracket
selectors, allowing the themes to take advantage of. #14 - Support for Laravel Pennant
@feature
@elsefeature
Bug Fix 🐞:
- Fixed bug #15
v1.2.0
New Features ✨:
- bumped
tree-sitter-blade
🌳 to v0.4.1 - Support for Authorisation Directives:
@can
@canany
@cannot
@elsecan
@elsecannot
@elsecanany
v.1.1.1
Bug Fixes: 🐞
- Fixes attribute html injection problems. See #11
v1.1.0
New Features ✨:
1. Completion now covers all the directives supported in
tree-sitter-blade
and they are as it follows:
- loops
@for
@foreach
@forelse
@while
- Livewire 🪼
@persist
@teleport
@volt
2. Syntax Highlighting adjustment
- The attribute directives now match the theme colouring for
tag.attribute.name
- For other directives theme selector has been changed to
tag.framework
so that it is semantically correct
Bug Fixes: 🐞
- Fixed the issue
@verbatim
adding parameter in completion - Remove duplicate
@break
until the issue is fixed in #10
📣 1.0.0 🎉
Finally support for php
injection 🥳 as well php autocompletion that is provided by Nova! see below for more info 👇
- This includes
- inside
parameters
,{{ }}
@php @endphp
or anywhere else you expect syntax highlighting! - The
php
injection would have NOT been possible without the work done @CalebDW on the coretree-sitter-php
🙏 see tree-sitter-php split_parser pull request draft - To get this work, I cloned the
split_parser draft
, thenphp-only
subsyntax was created in Nova - Then all the first party
completions
,queries
were copied, and adjusted to support the newphp-only
sub-syntax - This is a temporary measure until the pull request is merged, and then adopted by Nova, which might take a long time.
Other Updates
- Updated the submodules to the latest version
- Completion file names all adjusted to avoid confusion, prefixed with
php
orblade
- Added adjusted
makeFile
totree-sitter-php-only
to allow generation of correct dynamic library for Nova
0.2.2
- Extension typo fix...
0.2.0
New Features:
bumped the tree-sitter to v0.3.2, which includes:
- a lot of bug fixes,
- Folding Support
- Directive support for Livewire including the upcoming v3.0
Using Symbolic icons so that completion can be distinguished easier and semantic.
@vite
support- Completions refactored and categorised to follow their order they appear in tree-sitter grammar as well as following the rule_names
- Autocompletions:
- attributes
@class
@style
@checked
@selected
@disabled
@readonly
@required
- keywords
@csrf
@viteReactRefresh
@livewireStyles
@livewireScripts
@livewireScriptConfig
- inline directives
@extend
@yield
@include
@includeIf
@includeWhen
@includeUnless
@includeFirst
@props
@method
@inject
@each
@vite
@livewire
@Switch
@case
@break
@default
- conditionals and if statements
@section
@fragment
@once
@verbatim
@push
@pushOnce
@pushIf
@prepend
@prependOnce
@if
@Unless
@isset
@auth
@guest
@production
@env
@hasSection
@sectionMissing
@error
@php
tags
Adjustment to auto indentation increase/decrease
Bug Fix 🐞:
- Issues with context aware completion see #7 resulting with problem completing the attribute directives as well as none relating completion showing in attributes
0.1.0
- Support for code folding for blade directives
- bumped the
tree-sitter-blade
to 0.1.2
Version 0.0.6
- Extension rearrangements for slimming purposes.
- Streamlining the build process & including the code signing
Version 0.0.5
- Initial Release
- Integration with
tree-sitter-blade
- Support for automatic indentation increase and decrease
- Very basic context aware autocompletion (not complete at all)