{
  "name": "@yaegassy/coc-laravel",
  "version": "0.7.18",
  "stubsVersion": "v2023.2",
  "description": "Laravel extension for coc.nvim",
  "author": "yaegassy <yosstools@gmail.com>",
  "license": "MIT",
  "main": "lib/index.js",
  "keywords": [
    "coc.nvim",
    "php",
    "laravel",
    "blade",
    "laravel-blade",
    "vim",
    "neovim"
  ],
  "engines": {
    "coc": "^0.0.80"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/yaegassy/coc-laravel"
  },
  "publishConfig": {
    "access": "public"
  },
  "scripts": {
    "first": "yarn stubs && yarn laravel:main && yarn laravel:ide-helper",
    "stubs": "rimraf stubs && git clone git@github.com:JetBrains/phpstorm-stubs.git --depth 1 stubs",
    "laravel:main": "rimraf laravel-project && composer create-project laravel/laravel:10.* laravel-project && cp -R resources/laravel/laravel-project.env laravel-project/.env && touch laravel-project/database/database.sqlite && cd laravel-project && ./artisan key:generate && ./artisan migrate",
    "laravel:ide-helper": "cd laravel-project && composer require --dev barryvdh/laravel-ide-helper && php artisan ide-helper:generate && php artisan ide-helper:meta && php artisan ide-helper:models -N",
    "test": "vitest run src/__tests__",
    "test:watch": "vitest src/__tests__",
    "lint": "eslint src --ext ts",
    "clean": "rimraf lib",
    "watch": "node esbuild.js --watch",
    "build": "node esbuild.js",
    "prepare": "node esbuild.js"
  },
  "prettier": {
    "singleQuote": true,
    "printWidth": 120,
    "semi": true
  },
  "devDependencies": {
    "@types/node": "^18.17.11",
    "@types/node-fetch": "^2.6.2",
    "@typescript-eslint/eslint-plugin": "^6.3.0",
    "@typescript-eslint/parser": "^6.3.0",
    "coc.nvim": "^0.0.83-next.17",
    "esbuild": "^0.16.17",
    "eslint": "^8.45.0",
    "eslint-config-prettier": "^8.8.0",
    "eslint-plugin-prettier": "^4.2.1",
    "extract-zip": "^2.0.1",
    "https-proxy-agent": "^5.0.1",
    "node-fetch": "^2.6.7",
    "prettier": "^2.8.8",
    "rimraf": "^5.0.1",
    "typescript": "~5.0.4",
    "vitest": "^0.34.3"
  },
  "activationEvents": [
    "onLanguage:php",
    "onLanguage:blade"
  ],
  "contributes": {
    "rootPatterns": [
      {
        "filetype": "php",
        "patterns": [
          "artisan"
        ]
      },
      {
        "filetype": "blade",
        "patterns": [
          "artisan"
        ]
      }
    ],
    "configuration": {
      "type": "object",
      "title": "coc-laravel configuration",
      "properties": {
        "laravel.enable": {
          "type": "boolean",
          "default": true,
          "description": "Enable coc-laravel extension."
        },
        "laravel.environment.phpPath": {
          "type": "string",
          "default": "",
          "description": "Path to PHP, you can use a custom version of PHP. If there is no setting, `php` of the execution environment will be used."
        },
        "laravel.project.excludeVendors": {
          "type": "array",
          "default": [],
          "description": "List of target vendor directories to exclude during project analysis, e.g. [\"fakerphp\", \"phpunit\"]"
        },
        "laravel.project.startupMessageEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable project startup messages."
        },
        "laravel.stubs.customVersion": {
          "type": "string",
          "default": "",
          "description": "Specify the version of stubs to download with the `laravel.stubs.download` command. If not set, the `stubsVersion` defined in `package.json` will be used."
        },
        "laravel.stubs.useStubs": {
          "type": "array",
          "default": [
            "Core",
            "date",
            "standard"
          ],
          "description": "List of stubs to be used."
        },
        "laravel.completion.enable": {
          "type": "boolean",
          "default": true,
          "description": "Enable completion."
        },
        "laravel.completion.directiveEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable directive completion."
        },
        "laravel.completion.directiveList": {
          "type": "array",
          "default": [
            "@extends",
            "@yield",
            "@section",
            "@endsection",
            "@show",
            "@include",
            "@if",
            "@endif",
            "@else",
            "@hasSection",
            "@unless",
            "@endunless",
            "@for",
            "@endfor",
            "@foreach",
            "@endforeach",
            "@forelse",
            "@empty",
            "@endforelse",
            "@while",
            "@endwhile",
            "@each",
            "@verbatim",
            "@endverbatim",
            "@push",
            "@endpush",
            "@stack",
            "@inject",
            "@can",
            "@endcan",
            "@elsecan",
            "@canany",
            "@endcanany",
            "@elsecanany",
            "@cannot",
            "@endcannot",
            "@elsecannot",
            "@php",
            "@endphp",
            "@includeIf",
            "@component",
            "@endcomponent",
            "@slot",
            "@endslot",
            "@isset",
            "@endisset",
            "@endempty",
            "@error",
            "@enderror",
            "@includeWhen",
            "@auth",
            "@endauth",
            "@guest",
            "@endguest",
            "@switch",
            "@case",
            "@break",
            "@default",
            "@endswitch",
            "@includeFirst",
            "@csrf",
            "@method",
            "@dump",
            "@dd",
            "@lang",
            "@includeUnless",
            "@props",
            "@env",
            "@endenv",
            "@production",
            "@endproduction",
            "@once",
            "@endonce",
            "@aware",
            "@js",
            "@class",
            "@checked",
            "@selected",
            "@disabled",
            "@style",
            "@readonly",
            "@required",
            "@pushOnce",
            "@endPushOnce",
            "@prepend",
            "@prependOnce",
            "@endPrependOnce",
            "@livewire",
            "@livewireStyles",
            "@livewireScripts"
          ],
          "description": "List of directive used in directive completion."
        },
        "laravel.completion.configEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable config completion."
        },
        "laravel.completion.envEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable env completion."
        },
        "laravel.completion.validationEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable validation completion."
        },
        "laravel.completion.routeEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable route completion."
        },
        "laravel.completion.viewEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable view completion."
        },
        "laravel.completion.middlewareEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable middleware completion."
        },
        "laravel.completion.guardEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable guard completion."
        },
        "laravel.completion.translationEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable translation completion."
        },
        "laravel.completion.componentEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable component completion."
        },
        "laravel.completion.phpFunctionEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable php function completion."
        },
        "laravel.completion.phpFunction.stubsEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable stubs in phpFunction completion."
        },
        "laravel.completion.phpFunction.vendorEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable vendor in phpFunction completion."
        },
        "laravel.completion.phpClassEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable php class completion."
        },
        "laravel.completion.phpClass.stubsEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable stubs in phpClass completion."
        },
        "laravel.completion.phpClass.vendorEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable vendor in phpClass completion."
        },
        "laravel.completion.phpConstantEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable php constant completion."
        },
        "laravel.completion.phpConstant.stubsEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable stubs in phpConstant completion."
        },
        "laravel.completion.phpConstant.vendorEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable vendor in phpConstant completion."
        },
        "laravel.completion.phpStaticClassMemberEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable php static class member completion."
        },
        "laravel.completion.phpObjectMemberEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable php object member completion."
        },
        "laravel.completion.phpVariableEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable php variable completion."
        },
        "laravel.completion.phpKeywordEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable php keyword completion."
        },
        "laravel.completion.eloquentModelFieldEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable eloquent model field completion."
        },
        "laravel.completion.viewReferenceVariableEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable view reference variable completion."
        },
        "laravel.completion.methodParameterEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable method parameter completion."
        },
        "laravel.completion.livewireEnable": {
          "type": "boolean",
          "default": true,
          "description": "Enable livewire completion."
        },
        "laravel.livewire.wireClickAttributes": {
          "type": "array",
          "default": [
            "click",
            "click.prefetch",
            "submit",
            "submit.prevent",
            "keydown",
            "keydown.enter"
          ],
          "description": "List of click related action to be added to `wire:xxxx`."
        },
        "laravel.livewire.wireModelAttributes": {
          "type": "array",
          "default": [
            "model",
            "model.debounce.100ms",
            "model.lazy",
            "model.defer"
          ],
          "description": "List of model related action to be added to wire:xxxx."
        },
        "laravel.livewire.wireEventAttributes": {
          "type": "array",
          "default": [
            "key",
            "poll",
            "poll.500ms",
            "poll.keep-alive",
            "poll.visible",
            "init",
            "loading",
            "loading.class",
            "loading.class.remove",
            "loading.attr",
            "loading.delay",
            "loading.delay.shortest",
            "loading.delay.shorter",
            "loading.delay.short",
            "loading.delay.long",
            "loading.delay.longer",
            "loading.delay.longest",
            "dirty",
            "dirty.class",
            "dirty.class.remove",
            "dirty.attr",
            "offline",
            "offline.class",
            "offline.class.remove",
            "offline.attr",
            "target",
            "ignore",
            "ignore.self",
            "abort",
            "afterprint",
            "animationend",
            "animationiteration",
            "animationstart",
            "beforeprint",
            "beforeunload",
            "blur",
            "canplay",
            "canplaythrough",
            "change",
            "contextmenu",
            "copy",
            "cut",
            "dblclick",
            "drag",
            "dragend",
            "dragenter",
            "dragleave",
            "dragover",
            "dragstart",
            "drop",
            "durationchange",
            "ended",
            "error",
            "focus",
            "focusin",
            "focusout",
            "fullscreenchange",
            "fullscreenerror",
            "hashchange",
            "input",
            "invalid",
            "keypress",
            "keyup",
            "load",
            "loadeddata",
            "loadedmetadata",
            "loadstart",
            "message",
            "mousedown",
            "mouseenter",
            "mouseleave",
            "mousemove",
            "mouseover",
            "mouseout",
            "mouseup",
            "online",
            "open",
            "pagehide",
            "pageshow",
            "paste",
            "pause",
            "play",
            "playing",
            "popstate",
            "progress",
            "ratechange",
            "resize",
            "reset",
            "scroll",
            "search",
            "seeked",
            "seeking",
            "select",
            "show",
            "stalled",
            "storage",
            "suspend",
            "timeupdate",
            "toggle",
            "touchcancel",
            "touchend",
            "touchmove",
            "touchstart",
            "transitionend",
            "unload",
            "volumechange",
            "waiting",
            "wheel"
          ],
          "description": "List of browser events to be added to wire:xxxx. No need for wire:model or wire:click."
        },
        "laravel.definition.enable": {
          "type": "boolean",
          "default": true,
          "description": "Enable definition."
        },
        "laravel.reference.enable": {
          "type": "boolean",
          "default": true,
          "description": "Enable reference."
        },
        "laravel.hover.enable": {
          "type": "boolean",
          "default": true,
          "description": "Enable hover."
        },
        "laravel.diagnostic.enable": {
          "type": "boolean",
          "default": true,
          "description": "Enable diagnostic."
        },
        "laravel.codeAction.enable": {
          "type": "boolean",
          "default": true,
          "description": "Enable code action."
        },
        "laravel.artisan.withoutArgumentsCommandList": {
          "type": "array",
          "default": [],
          "description": "List of commands to quickly execute `laravel.artisan.run` or `laravel.sailArtisan.run` without prompting for arguments or options, e.g. `[\"route:list\", \"clear-compiled\"]`."
        },
        "laravel.artisan.enableSplitRight": {
          "type": "boolean",
          "default": false,
          "description": "Use vertical belowright for artisan terminal window."
        }
      }
    },
    "commands": [
      {
        "command": "laravel.project.restart",
        "title": "Run project restart"
      },
      {
        "command": "laravel.project.stats",
        "title": "(Develop) Show project stats"
      },
      {
        "command": "laravel.project.finder",
        "title": "(Develop) Run project finder"
      },
      {
        "command": "laravel.stubs.download",
        "title": "Download stubs"
      },
      {
        "command": "laravel.stubs.version",
        "title": "Show the version of stubs"
      },
      {
        "command": "laravel.artisan.run",
        "title": "Run artisan command"
      },
      {
        "command": "laravel.sailArtisan.run",
        "title": "Run sail artisan command"
      },
      {
        "command": "laravel.view.findAllReferences",
        "title": "Find view file references"
      },
      {
        "command": "laravel.showOutput",
        "title": "Show laravel output channel"
      }
    ]
  },
  "dependencies": {
    "case-anything": "^2.1.13",
    "fast-glob": "^3.3.0",
    "inflection": "^2.0.1",
    "minimatch": "^9.0.3",
    "php-parser": "3.1.5",
    "stillat-blade-parser": "1.2.0",
    "vscode-html-languageservice": "^5.0.6"
  }
}
