kkharji / xbase

Develop Apple software products within your favorite editor.
MIT License
537 stars 17 forks source link

source kit lsp is not working because unknown argument in .compile file #237

Open WERDXZ opened 1 year ago

WERDXZ commented 1 year ago

Editor/Client you used

Neovim

Installation and Dependences checklist

Description

sourcekit-lsp attached but not working, lsp logs as follow:

[START][2023-08-16 23:29:28] LSP logging initiated
[ERROR][2023-08-16 23:29:28] .../vim/lsp/rpc.lua:734    "rpc"   "/usr/bin/xcrun"    "stderr"    "[2023-08-16 23:29:28.286] error response (Request Failed): error: unknown argument: '-use-frontend-parseable-output'\n"
[START][2023-08-16 23:31:41] LSP logging initiated
[ERROR][2023-08-16 23:31:41] .../vim/lsp/rpc.lua:734    "rpc"   "/usr/bin/xcrun"    "stderr"    "[2023-08-16 23:31:41.220] error response (Request Failed): error: unknown argument: '-use-frontend-parseable-output'\n"

Expected behavior

lsp should work, e.g. give completion, diagnosis, symbols ...

Reproduce

neovim + lazy.nvim + tuist with config as follow:

{
    "xbase-lab/xbase",
    build = "make install",
    dependencies = { "neovim/nvim-lspconfig", "nvim-telescope/telescope.nvim" },
    ft = {
        "swift",
        "objcpp",
        "objc",
    },
    opts = {
        mappings = {
            build_picker = "<leader>B",
            run_picker = "<leader>pr",
            watch_picker = "<leader>pw",
            all_picker = "<leader>pa",
            toggle_split_log_buffer = "<leader>dlh",
            toggle_vsplit_log_buffer = "<leader>dlv",
        },
    },
},

```lua
{
    "neovim/nvim-lspconfig",
    event = { "BufReadPre", "BufNewFile" },
    dependencies = { "folke/neoconf.nvim" },
    ---@class PluginLspOpts
    opts = {
        -- options for vim.diagnostic.config()
        diagnostics = {
            underline = true,
            update_in_insert = false,
            virtual_text = { spacing = 4, prefix = "●" },
            severity_sort = true,
        },
        -- Automatically format on save
        autoformat = false,
        -- options for vim.lsp.buf.format
        -- but can be also overridden when specified
        format = {
            formatting_options = nil,
            timeout_ms = nil,
        },
        -- LSP Server Settings
        servers = {
            lua_ls = {
                completion = {
                    callSnippet = "Replace",
                },
            },
            eslint = {
                filetypes = { "javascript", "javascriptreact", "typescript", "typescriptreact" },
                root_dir = function(fname)
                    return require("lspconfig").util.root_pattern("package.json", ".git")(fname)
                        or require("lspconfig").util.find_git_ancestor(fname)
                        or vim.loop.os_homedir()
                end,
            },
            asm_lsp = {
                filetypes = { "asm", "nasm" },
            },
            clangd = {
                -- filetypes = { "c", "cpp"},
                on_attach = function(client, bufnr)
                    -- clangd extensions
                    require("clangd_extensions").on_attach(client, bufnr)
                    require("lazy").load({
                        plugins = "clangd_extensions",
                    })
                end,
            },
            sourcekit = {
                cmd = {"xcrun", "sourcekit-lsp", "--log-level", "error" },
                filetypes = { "swift", "c", "cpp", "objective-c", "objective-cpp", "objc", "objcpp" },
            }
        },
    },
    config = function(_, opts)
        local servers = opts.servers
        local capabilities =
            require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities())

        local setup = function(server)
            local server_opts = vim.tbl_deep_extend("force", {
                capabilities = vim.deepcopy(capabilities),
            }, servers[server] or {})
            require("lspconfig")[server].setup(server_opts)
        end

        -- get all the servers that are available thourgh mason-lspconfig
        local mlsp = require("mason-lspconfig")
        local all_mslp_servers = vim.tbl_keys(require("mason-lspconfig.mappings.server").lspconfig_to_package)

        local ensure_installed = {}
        for server, server_opts in pairs(servers) do
            if server_opts then
                server_opts = server_opts == true and {} or server_opts
                -- run manual setup if mason=false or if this is a server that cannot be installed with mason-lspconfig
                if not vim.tbl_contains(all_mslp_servers, server) then
                    setup(server)
                else
                    ensure_installed[#ensure_installed + 1] = server
                end
            end
        end
        mlsp.setup_handlers({ setup })
        mlsp.setup({ ensure_installed = ensure_installed })
    end,
    keys = {
        { "<leader>cl", "<cmd>LspInfo<cr>", desc = "Lsp Info" },
    },
},
  1. tuist init --platform ios
  2. edit any swift file at the first time when you edit the file the lsp didn't auto start, and if you start it manually, it still not working and give no logs in the lsp.log
  3. edit any swift file again

Actual behavior

type something and there is not lsp completion

lsp log:
[START][2023-08-16 23:29:28] LSP logging initiated
[ERROR][2023-08-16 23:29:28] .../vim/lsp/rpc.lua:734    "rpc"   "/usr/bin/xcrun"    "stderr"    "[2023-08-16 23:29:28.286] error response (Request Failed): error: unknown argument: '-use-frontend-parseable-output'\n"
[START][2023-08-16 23:31:41] LSP logging initiated
[ERROR][2023-08-16 23:31:41] .../vim/lsp/rpc.lua:734    "rpc"   "/usr/bin/xcrun"    "stderr"    "[2023-08-16 23:31:41.220] error response (Request Failed): error: unknown argument: '-use-frontend-parseable-output'\n"

xbase log:
INFO Client{fd=13}: Connected
 INFO Runtime{name="Temp"}: [Initializing] ------------------------
 INFO Broadcaster{name="Temp"}: Created
 INFO Runtime{name="Temp"}: no xcodeproj found at "/Users/werdxz/Projects/ios/temp"
 WARN Runtime{name="Temp"}: Expected `2` xcodeproj Manifest and Main but found `3`
 INFO Runtime{name="Temp"}: [Temp] targets: {"TempUITests": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "TempKitTests": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "TempUI": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "TempKit": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "Temp": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "TempTests": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }}
 INFO Broadcaster{name="Temp"}: Connected [27792]
 INFO Runtime{name="Temp"}: Creating "/Users/werdxz/Projects/ios/temp/buildServer.json"
 INFO Runtime{name="Temp"}: Building Manifest ...
 INFO Runtime{name="Temp"}: Building Temp-Workspace ...
 INFO Runtime{name="Temp"}: Connected [27792]
 INFO Runtime{name="Temp"}: [Initialized] -------------------------
 INFO FSWatcher{name="Temp"}: Watching
 INFO Client{fd=13}: Disconnected
 INFO Runtime{name="Temp"}: Disconnected [27792]
 INFO Runtime{name="Temp"}: [Dropped]
 INFO Broadcaster{name="Temp"}: [Dropped]
 INFO FSWatcher{name="Temp"}: [Dropped]
 INFO Client{fd=13}: Connected
 INFO Runtime{name="Temp"}: [Initializing] ------------------------
 INFO Broadcaster{name="Temp"}: Created
 WARN Runtime{name="Temp"}: Expected `2` xcodeproj Manifest and Main but found `3`
 INFO Runtime{name="Temp"}: [Temp] targets: {"TempTests": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "TempUITests": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "Temp": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "TempUI": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "TempKitTests": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "TempKit": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }}
 INFO Runtime{name="Temp"}: Connected [29010]
 INFO Runtime{name="Temp"}: [Initialized] -------------------------
ERROR Broadcaster{name="Temp"}: [CLIENT WITH 29010 NOT FOUND]
ERROR Broadcaster{name="Temp"}: [CLIENT WITH 29010 NOT FOUND]
ERROR Broadcaster{name="Temp"}: [CLIENT WITH 29010 NOT FOUND]
 INFO FSWatcher{name="Temp"}: Watching
 INFO Broadcaster{name="Temp"}: Connected [29010]

xbase build server log:
 INFO xbase_sourcekit_helper: Started
 INFO xbase_sourcekit_helper: Initialized
DEBUG xbase_sourcekit_helper: [TempKit.swift] Querying compile_db
 INFO xbase_sourcekit_helper: 
 INFO xbase_sourcekit_helper: Started
 INFO xbase_sourcekit_helper: Initialized
DEBUG xbase_sourcekit_helper: [Project.swift] Querying compile_db
 INFO xbase_sourcekit_helper: 

Operating system and version

macOS 13.4.1

xbase version / branch / rev

xbase 0.3.0

Neovim version

NVIM v0.9.1 release

Vscode version (if the editor you used is vscode)

No response

Installed XCode Developer Tools

Developer:

    Developer Tools:

      Version: 14.2 (14C18)
      Location: /Applications/Xcode.app
      Applications:
          Xcode: 14.2 (21534)
          Instruments: 14.1 (64556.12)
      SDKs:
          DriverKit:
              22.2:
          iOS:
              16.2: (20C52)
          iOS Simulator:
              16.2: (20C52)
          macOS:
              13.1: (22C55)
          tvOS:
              16.1: (20K67)
          tvOS Simulator:
              16.1: (20K67)
          watchOS:
              9.1: (20S71)
          watchOS Simulator:
              9.1: (20S71)

XBase Logs

INFO Client{fd=13}: Connected
 INFO Runtime{name="Temp"}: [Initializing] ------------------------
 INFO Broadcaster{name="Temp"}: Created
 INFO Runtime{name="Temp"}: no xcodeproj found at "/Users/werdxz/Projects/ios/temp"
 WARN Runtime{name="Temp"}: Expected `2` xcodeproj Manifest and Main but found `3`
 INFO Runtime{name="Temp"}: [Temp] targets: {"TempUITests": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "TempKitTests": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "TempUI": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "TempKit": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "Temp": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "TempTests": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }}
 INFO Broadcaster{name="Temp"}: Connected [27792]
 INFO Runtime{name="Temp"}: Creating "/Users/werdxz/Projects/ios/temp/buildServer.json"
 INFO Runtime{name="Temp"}: Building Manifest ...
 INFO Runtime{name="Temp"}: Building Temp-Workspace ...
 INFO Runtime{name="Temp"}: Connected [27792]
 INFO Runtime{name="Temp"}: [Initialized] -------------------------
 INFO FSWatcher{name="Temp"}: Watching
 INFO Client{fd=13}: Disconnected
 INFO Runtime{name="Temp"}: Disconnected [27792]
 INFO Runtime{name="Temp"}: [Dropped]
 INFO Broadcaster{name="Temp"}: [Dropped]
 INFO FSWatcher{name="Temp"}: [Dropped]
 INFO Client{fd=13}: Connected
 INFO Runtime{name="Temp"}: [Initializing] ------------------------
 INFO Broadcaster{name="Temp"}: Created
 WARN Runtime{name="Temp"}: Expected `2` xcodeproj Manifest and Main but found `3`
 INFO Runtime{name="Temp"}: [Temp] targets: {"TempTests": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "TempUITests": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "Temp": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "TempUI": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "TempKitTests": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }, "TempKit": TargetInfo { platform: "iOS", configurations: ["Debug", "Release"] }}
 INFO Runtime{name="Temp"}: Connected [29010]
 INFO Runtime{name="Temp"}: [Initialized] -------------------------
ERROR Broadcaster{name="Temp"}: [CLIENT WITH 29010 NOT FOUND]
ERROR Broadcaster{name="Temp"}: [CLIENT WITH 29010 NOT FOUND]
ERROR Broadcaster{name="Temp"}: [CLIENT WITH 29010 NOT FOUND]
 INFO FSWatcher{name="Temp"}: Watching
 INFO Broadcaster{name="Temp"}: Connected [29010]

XBase Build Server Logs

INFO xbase_sourcekit_helper: Started
 INFO xbase_sourcekit_helper: Initialized
DEBUG xbase_sourcekit_helper: [TempKit.swift] Querying compile_db
 INFO xbase_sourcekit_helper: 
 INFO xbase_sourcekit_helper: Started
 INFO xbase_sourcekit_helper: Initialized
DEBUG xbase_sourcekit_helper: [Project.swift] Querying compile_db
 INFO xbase_sourcekit_helper: 