DEV Community

Cover image for Sublime Text Config for Laravel
fajar sp
fajar sp

Posted on

1

Sublime Text Config for Laravel

The Original Post is here

Below is the configuration I use when developing Laravel applications with Sublime Text editor.

PLUGINS

  • git
  • git blame
  • git gutter
  • sidebar menu advanced
  • syncedsidebar
  • lsp
  • lsp intelephense
  • lsp bash
  • lsp dockerfile
  • lsp eslint
  • lsp volar
  • vue syntax highlight
  • lsp svelte
  • lsp tailwindcss
  • terminus
  • fileicons
  • a file icon
  • codeium
  • shell exec

To install plugins, open the Command Palette with cmd + shift + p / alt + shift + p and select "Install Plugin."

LSP

The LSP plugins require Node.js, so the first step is to install Node.js.

Installation guide: https://github.com/nvm-sh/nvm#installing-and-updating

Usage guide: https://github.com/nvm-sh/nvm#usage

Intelephense

After installation, run the following command:

npm -g i intelephense
Enter fullscreen mode Exit fullscreen mode

Open the menu LSP > Servers > LSP-intelephense under "Package Settings" and configure as follows:

{
    "enabled": true,
    "command": [
        "intelephense",
        "--stdio",
    ],
    "scopes": ["source.php", "embedding.php"],
    "syntaxes": ["Packages/PHP/PHP.sublime-syntax"],
    "languageId": "php",
    "initializationOptions": {
        "clearCache": false,
        "licenceKey": "",
    },
}
Enter fullscreen mode Exit fullscreen mode

Open the Command Palette and select Enable LSP: Enable Language Server.

Preferences Settings

Open with cmd + , / alt + ,:

{
    "ignored_packages":
    [
        "Git",
        "Git blame",
        "GitGutter",
        "Vintage",
    ],
    "save_on_focus_lost": true,
    "shell_exec_executable": "/bin/zsh",
    "shell_exec_output": "panel",
    "shell_exec_output_word_wrap": false
}
Enter fullscreen mode Exit fullscreen mode

Key Bindings

[
    {
        "command": "lsp_symbol_definition",
        "args": {
            "side_by_side": false
        },
        "keys": [
            "super+enter"
        ],
        "context": [
            {
                "key": "lsp.session_with_capability",
                "operator": "equal",
                "operand": "definitionProvider"
            },
            {
                "key": "auto_complete_visible",
                "operator": "equal",
                "operand": false
            }
        ]
    },

    {
        "command": "lsp_format_document",
        "keys": [
            "super+shift+'"
        ],
        "context": [
            {
                "key": "lsp.session_with_capability",
                "operator": "equal",
                "operand": "documentFormattingProvider | documentRangeFormattingProvider"
            }
        ]
    },
    { "keys": ["super+b"], "command": "toggle_side_bar" },
    { "keys": ["super+t"], "command": "toggle_terminus_panel" },
    { "keys": ["super+shift+o"], "command": "close_all" },
    {
        "keys": ["super+shift+t"],
        "caption": "Terminus: Open Default Shell in Split Tab",
        "command": "terminus_open",
        "args": {
            "post_window_hooks": [
                ["carry_file_to_pane", {"direction": "down"}]
            ]
        }
    },
    {
      "keys": ["super+shift+;"],
      "command": "shell_exec_run",
      "args": {
        "format": "./vendor/bin/pint"
      }
    }
]
Enter fullscreen mode Exit fullscreen mode

Mouse Bindings

[
    {
        "button": "button1", 
        "count": 1, 
        "modifiers": ["super"],
        "press_command": "drag_select",
        "command": "lsp_symbol_definition"
    },
    {
        "button": "button1", "count": 1, "modifiers": ["ctrl"],
        "press_command": "drag_select",
        "press_args": {"additive": true}
    }
]

Enter fullscreen mode Exit fullscreen mode

Canonical URL
For more detailed information, visit the original post on my blog.

Top comments (0)

Sentry image

Make it make sense

Only the context you need to fix your broken code with Sentry.

Start debugging →

đź‘‹ Kindness is contagious

Value this insightful article and join the thriving DEV Community. Developers of every skill level are encouraged to contribute and expand our collective knowledge.

A simple “thank you” can uplift someone’s spirits. Leave your appreciation in the comments!

On DEV, exchanging expertise lightens our path and reinforces our bonds. Enjoyed the read? A quick note of thanks to the author means a lot.

Okay