Skip to content

Go to definition not available in Neovim for classes and recipes #380

@Knaifhogg

Description

@Knaifhogg

I have an issue where go to definition doesn't work on classes and files. I compared it to VSCode which works similarly if it doesn't run the recipe parsing. So I can hover on inherit and get info about it, but if you go to definition on a class nothing happens. After scanning in VSCode it works as expected in VSCode. Neovim doesn't appear to do any recipe parsing which maybe is the issue.

I have set it up using mason and lspconfig. Excerpt of my config (using lazy.nvim, config based on kickstart.nvim, excluded some parts):

  {
    -- Main LSP Configuration
    'neovim/nvim-lspconfig',
    lazy = false,
    dependencies = {
      -- Automatically install LSPs and related tools to stdpath for Neovim
      { 'williamboman/mason.nvim', config = true }, -- NOTE: Must be loaded before dependants
      'williamboman/mason-lspconfig.nvim',
      'WhoIsSethDaniel/mason-tool-installer.nvim',

      -- Useful status updates for LSP.
      -- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})`
      { 'j-hui/fidget.nvim', opts = {} },

      -- Allows extra capabilities provided by nvim-cmp
      'hrsh7th/cmp-nvim-lsp',
    },
    config = function()
      require('mason').setup()

      -- you can add other tools here that you want mason to install
      -- for you, so that they are available from within neovim.
      local ensure_installed = vim.tbl_keys(servers or {})
      vim.list_extend(ensure_installed, {
        'stylua', -- used to format lua code
      })
      require('mason-tool-installer').setup { ensure_installed = ensure_installed }

      require('mason-lspconfig').setup {
        handlers = {
          function(server_name)
            local server = servers[server_name] or {}
            -- this handles overriding only values explicitly passed
            -- by the server configuration above. useful when disabling
            -- certain features of an lsp (for example, turning off formatting for ts_ls)
            server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {})
            require('lspconfig')[server_name].setup(server)
          end,
        },
      }

      -- add servers not supported by mason-lspconfig
      require('lspconfig').bitbake_ls.setup {
        root_dir = vim.fn.getcwd(),
        settings = {
          bitbake = {
            pathtobuildfolder = '/mnt/build/prod/build/',
            pathtoenvscript = '/mnt/build/prod/oe-init-build-env',
            pathtobitbakefolder = '/mnt/build/prod/bitbake',
            workingdirectory = '/mnt/build/prod/',
          },
        },
      }
    end,

And I can see it launches the server when I use LspInfo:

lspconfig: require("lspconfig.health").check()

LSP configs active in this session (globally) ~
- Configured servers: rust_analyzer, bashls, fortls, lua_ls, eslint, clangd, vtsls, bitbake_ls, asm_lsp
- OK Deprecated servers: (none)

LSP configs active in this buffer (bufnr: 4) ~
- Language client log: ~/.local/state/nvim/lsp.log
- Detected filetype: `bitbake`
- 1 client(s) attached to this buffer
- Client: `bitbake_ls` (id: 1, bufnr: [4])
  root directory:    /mnt/build/prod/
  filetypes:         bitbake
  cmd:               ~/.local/share/nvim/mason/bin/language-server-bitbake --stdio
  version:           `?` (Failed to get version)
  
  executable:        true
  autostart:         true

Docs for active configs: ~
- bitbake_ls docs: >markdown
  
  https://github.com/yoctoproject/vscode-bitbake/tree/staging/server
  https://www.npmjs.com/package/language-server-bitbake
  
  Official Bitbake Language Server for the Yocto Project.
  
  Can be installed from npm or github.
  npm install -g language-server-bitbake

When viewing LspLog with debugging on it looks like the client does request dfinition but gets an empty result in the response. So it probably has to do with recipe parsing?

LspLog:

[START][2025-01-08 11:49:25] LSP logging initiated
[INFO][2025-01-08 11:49:25] .../vim/lsp/rpc.lua:731	"Starting RPC client"	{  cmd = { "/home/username/.local/share/nvim/mason/bin/language-server-bitbake", "--stdio" },  extra = {    cwd = "/mnt/build/prod"  }}
[DEBUG][2025-01-08 11:49:25] .../vim/lsp/rpc.lua:286	"rpc.send"	{  id = 1,  jsonrpc = "2.0",  method = "initialize",  params = {    capabilities = {      general = {        positionEncodings = { "utf-16" }      },      textDocument = {        callHierarchy = {          dynamicRegistration = false        },        codeAction = {          codeActionLiteralSupport = {            codeActionKind = {              valueSet = { "", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports" }            }          },          dataSupport = true,          dynamicRegistration = true,          isPreferredSupport = true,          resolveSupport = {            properties = { "edit" }          }        },        completion = {          completionItem = {            commitCharactersSupport = false,            deprecatedSupport = false,            documentationFormat = { "markdown", "plaintext" },            preselectSupport = false,            snippetSupport = false          },          completionItemKind = {            valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 }          },          completionList = {            itemDefaults = { "editRange", "insertTextFormat", "insertTextMode", "data" }          },          contextSupport = false,          dynamicRegistration = false        },        declaration = {          linkSupport = true        },        definition = {          dynamicRegistration = true,          linkSupport = true        },        diagnostic = {          dynamicRegistration = false        },        documentHighlight = {          dynamicRegistration = false        },        documentSymbol = {          dynamicRegistration = false,          hierarchicalDocumentSymbolSupport = true,          symbolKind = {            valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }          }        },        formatting = {          dynamicRegistration = true        },        hover = {          contentFormat = { "markdown", "plaintext" },          dynamicRegistration = true        },        implementation = {          linkSupport = true        },        inlayHint = {          dynamicRegistration = true,          resolveSupport = {            properties = { "textEdits", "tooltip", "location", "command" }          }        },        publishDiagnostics = {          dataSupport = true,          relatedInformation = true,          tagSupport = {            valueSet = { 1, 2 }          }        },        rangeFormatting = {          dynamicRegistration = true        },        references = {          dynamicRegistration = false        },        rename = {          dynamicRegistration = true,          prepareSupport = true        },        semanticTokens = {          augmentsSyntaxTokens = true,          dynamicRegistration = false,          formats = { "relative" },          multilineTokenSupport = false,          overlappingTokenSupport = true,          requests = {            full = {              delta = true            },            range = false          },          serverCancelSupport = false,          tokenModifiers = { "declaration", "definition", "readonly", "static", "deprecated", "abstract", "async", "modification", "documentation", "defaultLibrary" },          tokenTypes = { "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" }        },        signatureHelp = {          dynamicRegistration = false,          signatureInformation = {            activeParameterSupport = true,            documentationFormat = { "markdown", "plaintext" },            parameterInformation = {              labelOffsetSupport = true            }          }        },        synchronization = {          didSave = true,          dynamicRegistration = false,          willSave = true,          willSaveWaitUntil = true        },        typeDefinition = {          linkSupport = true        }      },      window = {        showDocument = {          support = true        },        showMessage = {          messageActionItem = {            additionalPropertiesSupport = false          }        },        workDoneProgress = true      },      workspace = {        applyEdit = true,        configuration = true,        didChangeConfiguration = {          dynamicRegistration = false        },        didChangeWatchedFiles = {          dynamicRegistration = false,          relativePatternSupport = true        },        inlayHint = {          refreshSupport = true        },        semanticTokens = {          refreshSupport = true        },        symbol = {          dynamicRegistration = false,          symbolKind = {            valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }          }        },        workspaceEdit = {          resourceOperations = { "rename", "create", "delete" }        },        workspaceFolders = true      }    },    clientInfo = {      name = "Neovim",      version = "0.10.1+g7e194f0d0"    },    initializationOptions = vim.empty_dict(),    processId = 3876001,    rootPath = "/mnt/build/prod",    rootUri = "file:///mnt/build/prod",    trace = "off",    workDoneToken = "1",    workspaceFolders = { {        name = "/mnt/build/prod",        uri = "file:///mnt/build/prod"      } }  }}
[DEBUG][2025-01-08 11:49:25] .../vim/lsp/rpc.lua:408	"rpc.receive"	{  id = 1,  jsonrpc = "2.0",  result = {    capabilities = {      completionProvider = {        resolveProvider = true,        triggerCharacters = { ":", "[" }      },      definitionProvider = true,      hoverProvider = true,      referencesProvider = true,      renameProvider = {        prepareProvider = true      },      semanticTokensProvider = {        full = true,        legend = {          tokenModifiers = { "declaration", "deprecated", "modification", "readonly" },          tokenTypes = { "function", "variable", "parameter", "class", "number", "operator", "string", "keyword" }        }      },      textDocumentSync = 2,      workspace = {        fileOperations = {          didCreate = {            filters = { {                pattern = {                  glob = "**/*"                },                scheme = "file"              } }          },          didDelete = {            filters = { {                pattern = {                  glob = "**/*"                },                scheme = "file"              } }          },          didRename = {            filters = { {                pattern = {                  glob = "**/*"                },                scheme = "file"              } }          }        }      }    }  }}
[DEBUG][2025-01-08 11:49:25] .../vim/lsp/rpc.lua:286	"rpc.send"	{  jsonrpc = "2.0",  method = "initialized",  params = vim.empty_dict()}
[DEBUG][2025-01-08 11:49:25] .../vim/lsp/rpc.lua:286	"rpc.send"	{  jsonrpc = "2.0",  method = "workspace/didChangeConfiguration",  params = {    settings = {      bitbake = {        pathToBitbakeFolder = "/mnt/build/prod/bitbake",        pathToBuildFolder = "/mnt/build/prod/build/",        pathToEnvScript = "/mnt/build/prod/oe-init-build-env",        workingDirectory = "/mnt/build/prod/"      }    }  }}
[DEBUG][2025-01-08 11:49:25] .../vim/lsp/rpc.lua:286	"rpc.send"	{  jsonrpc = "2.0",  method = "textDocument/didOpen",  params = {    textDocument = {      languageId = "bitbake",      text = "require automake.inc\nLICENSE = \"GPL-2.0-only\"\nLIC_FILES_CHKSUM = \"file://COPYING;md5=751419260aa954499f7abaabaa882bbe\"\nDEPENDS:class-native = \"autoconf-native\"\n\nNAMEVER = \"${@oe.utils.trim_version(\"${PV}\", 2)}\"\n\nRDEPENDS:${PN} += \"\\\n    autoconf \\\n    perl \\\n    perl-module-bytes \\\n    perl-module-data-dumper \\\n    perl-module-strict \\\n    perl-module-text-parsewords \\\n    perl-module-thread-queue \\\n    perl-module-threads \\\n    perl-module-vars \"\n\nRDEPENDS:${PN}:class-native = \"autoconf-native hostperl-runtime-native\"\n\nSRC_URI += \"\\\n           file://0001-automake-Update-for-python.m4-to-respect-libdir.patch \\\n           file://buildtest.patch \\\n           file://performance.patch \\\n           file://new_rt_path_for_test-driver.patch \\\n           file://0001-automake-Add-default-libtool_tag-to-cppasm.patch \\\n           file://0001-build-fix-race-in-parallel-builds.patch \\\n           file://0001-Drop-ar-u-argument.patch \\\n           \"\n\nSRC_URI[sha256sum] = \"07bd24ad08a64bc17250ce09ec56e921d6343903943e99ccf63bbf0705e34605\"\n\nPERL = \"${USRBINPATH}/perl\"\nPERL:class-native = \"${USRBINPATH}/env perl\"\nPERL:class-nativesdk = \"${USRBINPATH}/env perl\"\n\nCACHED_CONFIGUREVARS += \"ac_cv_path_PERL='${PERL}'\"\n\ndo_install:append () {\n    install -d ${D}${datadir}\n}\n\nBBCLASSEXTEND = \"native nativesdk\"\n",      uri = "file:///mnt/build/prod/poky/meta/recipes-devtools/automake/automake_1.16.5.bb",      version = 0    }  }}
[INFO][2025-01-08 11:49:25] ...m/lsp/client.lua:620	"LSP[bitbake_ls]"	"server_capabilities"	{  server_capabilities = {    completionProvider = {      resolveProvider = true,      triggerCharacters = { ":", "[" }    },    definitionProvider = true,    hoverProvider = true,    referencesProvider = true,    renameProvider = {      prepareProvider = true    },    semanticTokensProvider = {      full = true,      legend = {        tokenModifiers = { "declaration", "deprecated", "modification", "readonly" },        tokenTypes = { "function", "variable", "parameter", "class", "number", "operator", "string", "keyword" }      }    },    textDocumentSync = {      change = 2,      openClose = true,      save = {        includeText = false      },      willSave = false,      willSaveWaitUntil = false    },    workspace = {      fileOperations = {        didCreate = {          filters = { {              pattern = {                glob = "**/*"              },              scheme = "file"            } }        },        didDelete = {          filters = { {              pattern = {                glob = "**/*"              },              scheme = "file"            } }        },        didRename = {          filters = { {              pattern = {                glob = "**/*"              },              scheme = "file"            } }        }      }    }  }}
[DEBUG][2025-01-08 11:49:25] ...m/lsp/client.lua:678	"LSP[bitbake_ls]"	"client.request"	1	"textDocument/semanticTokens/full"	{  textDocument = {    uri = "file:///mnt/build/prod/poky/meta/recipes-devtools/automake/automake_1.16.5.bb"  }}	<function 1>	4
[DEBUG][2025-01-08 11:49:25] .../vim/lsp/rpc.lua:286	"rpc.send"	{  id = 2,  jsonrpc = "2.0",  method = "textDocument/semanticTokens/full",  params = {    textDocument = {      uri = "file:///mnt/build/prod/poky/meta/recipes-devtools/automake/automake_1.16.5.bb"    }  }}
[DEBUG][2025-01-08 11:49:25] .../vim/lsp/rpc.lua:408	"rpc.receive"	{  jsonrpc = "2.0",  method = "bitbake/EmbeddedLanguageDocs",  params = { { {        characterIndexes = { 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556 },        content = "#!/bin/sh\n\n# Original BitBake document: file:///mnt/build/prod/poky/meta/recipes-devtools/automake/automake_1.16.5.bb\n# shellcheck disable=SC2317\n. /mnt/build/prod/meta/classes-global/logging.bbclass\n. /mnt/build/prod/meta/classes-global/base.bbclass\n                    \n                        \n                                                                        \n                                        \n\n                                                 \n\n                    \n              \n          \n                       \n                             \n                        \n                                 \n                              \n                         \n                      \n\n                                                                       \n\n             \n                                                                              \n                                   \n                                     \n                                                     \n                                                                         \n                                                                \n                                                 \n            \n\n                                                                                       \n\n                           \n                                            \n                                               \n\n                                                   \n\ndo_install        () {\n    install -d ${D}${datadir}\n}\n\n                                  \n",        language = "bash",        originalUri = "file:///mnt/build/prod/poky/meta/recipes-devtools/automake/automake_1.16.5.bb"      }, {        characterIndexes = { 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822 },        content = '# Original BitBake document: file:///mnt/build/prod/poky/meta/recipes-devtools/automake/automake_1.16.5.bb\nimport bb, bb.build, bb.compress.zstd, bb.data, bb.data_smart, bb.event, bb.fetch2, bb.parse, bb.persist_data, bb.process, bb.progress, bb.runqueue, bb.siggen, bb.utils\nimport oe.data, oe.path, oe.utils, oe.types, oe.package, oe.packagegroup, oe.sstatesig, oe.lsb, oe.cachedpath, oe.license, oe.qa, oe.reproducible, oe.rust, oe.buildcfg\nd = bb.data_smart.DataSmart()\ne = bb.event.Event()\ne.data = d\nimport os\n                    \n                        \n                                                                        \n                                        \n\n             \n\noe.utils.trim_version("${PV}", 2)\n \n\n                    \n              \n          \n                       \n                             \n                        \n                                 \n                              \n                         \n                      \n\n                                                                       \n\n             \n                                                                              \n                                   \n                                     \n                                                     \n                                                                         \n                                                                \n                                                 \n            \n\n                                                                                       \n\n                           \n                                            \n                                               \n\n                                                   \n\n                      \n                             \n \n\n                                  \n',        language = "python",        originalUri = "file:///mnt/build/prod/poky/meta/recipes-devtools/automake/automake_1.16.5.bb"      } } }}
[DEBUG][2025-01-08 11:49:25] .../vim/lsp/rpc.lua:408	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = {},    uri = "file:///mnt/build/prod/poky/meta/recipes-devtools/automake/automake_1.16.5.bb"  }}
[DEBUG][2025-01-08 11:49:25] .../vim/lsp/rpc.lua:408	"rpc.receive"	{  id = 0,  jsonrpc = "2.0",  method = "bitbake/getRecipeLocalFiles",  params = {    uri = "/mnt/build/prod/poky/meta/recipes-devtools/automake/automake_1.16.5.bb"  }}
[DEBUG][2025-01-08 11:49:25] .../vim/lsp/rpc.lua:408	"rpc.receive"	{  id = 2,  jsonrpc = "2.0",  result = {    data = { 1, 0, 7, 1, 1, 1, 0, 16, 1, 1, 1, 0, 7, 1, 1, 0, 8, 12, 5, 8, 2, 0, 7, 1, 1, 2, 0, 8, 1, 1, 0, 11, 2, 1, 1, 11, 0, 8, 1, 1, 0, 11, 2, 1, 1, 0, 4, 12, 5, 8, 2, 0, 7, 1, 1, 10, 0, 7, 1, 1, 2, 0, 4, 1, 1, 0, 10, 10, 1, 1, 1, 0, 4, 1, 1, 0, 5, 12, 5, 8, 0, 18, 10, 1, 1, 1, 0, 4, 1, 1, 0, 5, 15, 5, 8, 0, 21, 10, 1, 1, 2, 0, 20, 1, 1, 0, 44, 4, 1, 1, 2, 0, 10, 0, 1, 0, 11, 6, 7, 0, 1, 4, 7, 0, 0, 0, 13, 1, 1, 0, 0, 4, 7, 1, 0, 3, 0, 13, 1, 1 },    resultId = "1736333365094"  }}
[WARN][2025-01-08 11:49:25] ...m/lsp/client.lua:1025	"server_request: no handler found for"	"bitbake/getRecipeLocalFiles"
[DEBUG][2025-01-08 11:49:25] .../vim/lsp/rpc.lua:423	"server_request: callback result"	{  err = {    code = -32601,    message = "MethodNotFound",    <metatable> = {      __tostring = <function 1>    }  },  status = true}
[DEBUG][2025-01-08 11:49:25] .../vim/lsp/rpc.lua:286	"rpc.send"	{  error = {    code = -32601,    message = "MethodNotFound",    <metatable> = {      __tostring = <function 1>    }  },  id = 0,  jsonrpc = "2.0"}
[DEBUG][2025-01-08 11:49:32] ...m/lsp/client.lua:678	"LSP[bitbake_ls]"	"client.request"	1	"textDocument/hover"	{  position = {    character = 0,    line = 0  },  textDocument = {    uri = "file:///mnt/build/prod/poky/meta/recipes-devtools/automake/automake_1.16.5.bb"  }}	<function 1>	4
[DEBUG][2025-01-08 11:49:32] .../vim/lsp/rpc.lua:286	"rpc.send"	{  id = 3,  jsonrpc = "2.0",  method = "textDocument/hover",  params = {    position = {      character = 0,      line = 0    },    textDocument = {      uri = "file:///mnt/build/prod/poky/meta/recipes-devtools/automake/automake_1.16.5.bb"    }  }}
[DEBUG][2025-01-08 11:49:32] .../vim/lsp/rpc.lua:408	"rpc.receive"	{  id = 3,  jsonrpc = "2.0",  result = {    contents = {      kind = "markdown",      value = "**require**\n___\nBitBake understands the require directive. This directive behaves just like the include directive with the exception that BitBake raises a parsing error if the file to be included cannot be found. Thus, any file you require is inserted into the file that is being parsed at the location of the directive. \n\nThe require directive, like the include directive previously described, is a more generic method of including functionality as compared to the inherit directive, which is restricted to class (i.e. .bbclass) files. The require directive is applicable for any other kind of shared or encapsulated functionality or configuration that does not suit a .bbclass file. \n\nSimilar to how BitBake handles include, if the path specified on the require line is a relative path, BitBake locates the first file it can find within BBPATH. \n\nAs an example, suppose you have two versions of a recipe (e.g. foo_1.2.2.bb and foo_2.0.0.bb) where each version contains some identical functionality that could be shared. You could create an include file named foo.inc that contains the common definitions needed to build “foo”. You need to be sure foo.inc is located in the same directory as your two recipe files as well. Once these conditions are set up, you can share the functionality using a require directive from within each recipe: \n ```require foo.inc```"    }  }}
[DEBUG][2025-01-08 11:49:40] ...m/lsp/client.lua:678	"LSP[bitbake_ls]"	"client.request"	1	"textDocument/hover"	{  position = {    character = 8,    line = 0  },  textDocument = {    uri = "file:///mnt/build/prod/poky/meta/recipes-devtools/automake/automake_1.16.5.bb"  }}	<function 1>	4
[DEBUG][2025-01-08 11:49:40] .../vim/lsp/rpc.lua:286	"rpc.send"	{  id = 4,  jsonrpc = "2.0",  method = "textDocument/hover",  params = {    position = {      character = 8,      line = 0    },    textDocument = {      uri = "file:///mnt/build/prod/poky/meta/recipes-devtools/automake/automake_1.16.5.bb"    }  }}
[DEBUG][2025-01-08 11:49:40] .../vim/lsp/rpc.lua:408	"rpc.receive"	{  id = 4,  jsonrpc = "2.0"}
[DEBUG][2025-01-08 11:49:43] ...m/lsp/client.lua:678	"LSP[bitbake_ls]"	"client.request"	1	"textDocument/definition"	{  position = {    character = 8,    line = 0  },  textDocument = {    uri = "file:///mnt/build/prod/poky/meta/recipes-devtools/automake/automake_1.16.5.bb"  }}	<function 1>	4
[DEBUG][2025-01-08 11:49:43] .../vim/lsp/rpc.lua:286	"rpc.send"	{  id = 5,  jsonrpc = "2.0",  method = "textDocument/definition",  params = {    position = {      character = 8,      line = 0    },    textDocument = {      uri = "file:///mnt/build/prod/poky/meta/recipes-devtools/automake/automake_1.16.5.bb"    }  }}
[DEBUG][2025-01-08 11:49:43] .../vim/lsp/rpc.lua:408	"rpc.receive"	{  id = 5,  jsonrpc = "2.0",  result = {}}

Metadata

Metadata

Assignees

No one assigned

    Labels

    contribution welcomeMaintainers haven't planned to address this but welcome external PRsenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions