npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

coc-blade

v0.18.11

Published

Laravel Blade Templates extension for coc.nvim

Downloads

398

Readme

coc-blade

Laravel Blade Templates extension for coc.nvim. Provides "formatter", "linter", "completion" and more...

Features

  • Format
  • Lint
  • Completion
    • Blade Snippets Completion
    • Blade Directive Completion
  • Definition
    • Jump to template file specified by @extends, @include directive, etc.
    • Jump to "Blade Components" file.
      • [Warning] Class-based Components are not supported.
    • Jump to "Jetstream Components" file.
  • Code Action
    • Add a blade comment to disable the formatting.
  • Hover

Install

CocInstall:

:CocInstall coc-blade

vim-plug:

Plug 'yaegassy/coc-blade', {'do': 'yarn install --frozen-lockfile'}

Recommended coc extension:

(Optional) Additional installation of laravel blade related coc-extension

  • @yaegassy/coc-laravel
    • Various completions, definitions, references, hovers, diagnostics, codeActions, artisan and sail commands integration and more features for Laravel projects.
  • @yaegassy/coc-intelephense
    • intelephense (PHP language server) extension for coc.nvim. intelephense's various LSP features and this extension's additional features are available.
  • coc-html
    • html-related support will be added in blade

Note

Filetype related

The "filetype" must be blade for this extension to work.

Install "blade" related plugin (e.g. jwalton512/vim-blade or sheerun/vim-polyglot or nvim-treesitter with tree-sitter-blade).

For more information on setup tree-sitter-blade in nvim-treesitter, please click here.

Usage Topics

formatter (blade-formatter)

Run:

  • :call CocAction('format')
  • :CocCommand bladeFormatter.run

If there is a "syntax error" in the blade template, the formatting will fail.

Configuration file: .bladeformatterrc.json or .bladeformatterrc:

To configure settings per project, put .bladeformatterrc.json or .bladeformatterrc to your project root will blade-formatter treat it as setting files.

Configuration file will like below:

{
    "indentSize": 4,
    "wrapAttributes": "auto",
    "wrapLineLength": 120,
    "endWithNewLine": true,
    "useTabs": false,
    "sortTailwindcssClasses": true
}

Ignoring Files: .bladeignore:

To ignore specific file, put .bladeignore to your repository root will blade-formatter treat it as ignored files.

resources/views/users/index.blade.php
resources/views/products/*
resources/views/books/**/*

Disabling format in file:

In coc-blade, there is a code action feature to add a blade comment to disable the formatting.

linter (using Stillat/blade-parser-typescript)

This feature is enabled by default. If you do not need the linter feature, set blade.bladeParserLint.enable to false

snippets completion (laravel-blade-snippets-vscode)

You can auto-complete by typing b:, lv:, Blade::, livewire::.

It uses snippet files from onecentlin/laravel-blade-snippets-vscode to provide completion.

directive completion

You can auto-complete by typing @.

Configuration options

  • blade.enable: Enable coc-blade extension, default: true
  • blade.completion.enable: Enable completion feature, default: true
  • blade.completion.enableDirective: Enable directive completion, default: true
  • blade.completion.enableSnippets: Enable snippets completion, default: true
  • blade.completion.excludeSnippets: Exclude specific prefix in snippet completion, e.g. ["b:extends", "lv:url", "Blade::component"], default: []
  • blade.bladeFormatter.enable: Enable/Disable the formatting feature by blade-formatter, default: true
  • blade.bladeFormatter.optIndentSize: Indent size, valid type integer or null, default: null,
  • blade.bladeFormatter.optWrapLineLength: The length of line wrap size, valid type integer or null, default: null
  • blade.bladeFormatter.optWrapAttributes: The way to wrap attributes, valid options ["auto", "force", "force-aligned", "force-expand-multiline", "aligned-multiple", "preserve", "preserve-aligned"], valid type string or null, default: null
  • blade.bladeFormatter.optEndWithNewLine: End output with newline, default: true
  • blade.bladeFormatter.optEndOfLine: End of line character(s), valid options ["LF", "CRLF"], valid type string or null, default: null
  • blade.bladeFormatter.optUseTabs: Use tab as indentation character, default: false
  • blade.bladeFormatter.optSortTailwindcssClasses: Sort Tailwindcss classes automatically. This option respects tailwind.config.js and sort classes according to settings, valid type boolean or null, default: null
  • blade.bladeFormatter.optSortHtmlAttributes: Sort HTML Attributes in the specified order, valid option ["none", "alphabetical", "code-guide", "idiomatic", "vuejs", "custom"], default: "none"
  • blade.bladeFormatter.optCustomHtmlAttributesOrder: Comma separated custom HTML attributes order. To enable this you must specify sort html attributes option as custom. You can use regex for attribute names, valid type string, string[] or null default: null
  • blade.bladeFormatter.optNoMultipleEmptyLines: Collapses multiple blank lines into a single blank line, default: false
  • blade.bladeFormatter.optNoPhpSyntaxCheck: Disable PHP syntax check. Enabling this will suppress PHP syntax error reporting, default: false
  • blade.bladeFormatter.optNoSingleQuote: Use double quotes instead of single quotes for php expression, default: false
  • blade.bladeFormatter.optWrapAttributesMinAttrs: Minimum number of html tag attributes for force wrap attribute options. Wrap the first attribute only if 'force-expand-multiline' is specified in wrap attributes, valid type integer or null, default: null
  • blade.bladeFormatter.optIndentInnerHtml: Indent <head> and <body> tag sections in html, default: false
  • blade.bladeFormatter.optNoTrailingCommaPhp: If set to true, no trailing commas are printed for php expression, default: false
  • blade.bladeFormatter.optExtraLiners: Comma separated list of tags that should have an extra newline before them, default: []
  • blade.bladeParserLint.enable: Enable/Disable the linting feature using stillat-blade-parser, default: true
  • blade.bladeParserLint.debug: Output the results of the parsing of stillat-blade-parser to the channel log, default: false
  • blade.bladeParserLint.optCustomIfs: A list of custom if directives, default: []
  • blade.bladeParserLint.optDirectives: A list of directives that can be parsed, default: []
  • blade.bladeParserLint.optIgnoreDirectives: A list of directive names that should be ignored, default: []

Commands

  • blade.showOutput: Show blade output channel
  • blade.bladeFormatter.run: Run blade-formatter
  • blade.showReferences: Show BladeDirective (@...) or BladeEcho ({{ ... }}, {!! ... !!}) location information for the current file

Code Actions

Example key mapping (Code Action related):

nmap <silent> ga <Plug>(coc-codeaction-line)
nmap <silent> gA <Plug>(coc-codeaction)

Actions:

  • Add "blade-formatter-disable-next-line" for this line
  • Add "blade-formatter-disable" for this line
  • Add "blade-formatter-enable" for this line
  • Add "blade-formatter-disable" for whole file

Thanks

License

MIT


This extension is built with create-coc-extension