Skip to content

bug: Formatter 'php_cs"fixer' timeout on save, but works with the shortcut #780

@tonkoshkurik

Description

@tonkoshkurik

Neovim version (nvim -v)

NVIM v0.11.4

Operating system/version

MacOS 15.7

Read debugging tips

Add the debug logs

  • I have set log_level = vim.log.levels.DEBUG and pasted the log contents below.

Log file

Log file: /Users/tonkoskurik/.local/state/nvim/conform.log
          2025-09-24 14:39:21[INFO] Run php_cs_fixer on /Users/tonkoskurik/Sites/HQ/hq-copy/app/Console/Commands/ValidateDailyResourceAggregation.php
          2025-09-24 14:39:21[DEBUG] Creating temp file /Users/tonkoskurik/Sites/HQ/hq-copy/app/Console/Commands/.conform.6091167.ValidateDailyResourceAggregation.php
          2025-09-24 14:39:21[DEBUG] Run command: { "/Users/tonkoskurik/Sites/HQ/hq-copy/vendor/bin/php-cs-fixer", "fix", "/Users/tonkoskurik/Sites/HQ/hq-copy/app/Console/Commands/.conform.6091167.ValidateDailyResourceAggregation.php" }
          2025-09-24 14:39:21[DEBUG] Run CWD: /Users/tonkoskurik/Sites/HQ/hq-copy
          2025-09-24 14:39:22[WARN] Formatter 'php_cs_fixer' timeout
          2025-09-24 14:39:22[DEBUG] php_cs_fixer exited with code 0
          2025-09-24 14:39:22[DEBUG] Cleaning up temp file /Users/tonkoskurik/Sites/HQ/hq-copy/app/Console/Commands/.conform.6091167.ValidateDailyResourceAggregation.php

Formatters for this buffer:
LSP: intelephense
php_cs_fixer ready (php) /Users/tonkoskurik/Sites/HQ/hq-copy/vendor/bin/php-cs-fixer

Describe the bug

Basically when I save the php file I see the Formatter 'php_cs_fixer' timeout

but when I use 'f' it works

What is the severity of this bug?

minor (annoyance)

Steps To Reproduce

  1. open any php file
  2. :w save it
  3. see the warning bellow

Expected Behavior

no working and it works

Minimal example file

any php file is the same, also you need the php-cs-fixer to be installed, which I do have and it works

Minimal init.lua

{ -- Autoformat
    'stevearc/conform.nvim',
    event = { 'BufWritePre' },
    cmd = { 'ConformInfo' },
    keys = {
      {
        '<leader>f',
        function()
          require('conform').format { async = true, lsp_format = 'fallback' }
        end,
        mode = '',
        desc = '[F]ormat buffer',
      },
    },
    opts = {
      log_level = vim.log.levels.DEBUG,
      notify_on_error = false,
      format_on_save = function(bufnr)
        -- Disable "format_on_save lsp_fallback" for languages that don't
        -- have a well standardized coding style. You can add additional
        -- languages here or re-enable it for the disabled ones.
        local disable_filetypes = { c = true, cpp = true, php = false }
        local lsp_format_opt
        if disable_filetypes[vim.bo[bufnr].filetype] then
          lsp_format_opt = 'never'
        else
          lsp_format_opt = 'fallback'
        end
        return {
          timeout_ms = 500,
          lsp_format = lsp_format_opt,
        }
      end,
      formatters_by_ft = {
        lua = { 'stylua' },
        php = { 'php_cs_fixer', 'pint', stop_after_first = true },
        -- Conform can also run multiple formatters sequentially
        -- python = { "isort", "black" },
        --
        -- You can use 'stop_after_first' to run the first available formatter from the list
        javascript = { 'prettier', stop_after_first = true },
        json = { 'prettier' },
      },
    },
  }

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions