diff --git a/nvim/.gitignore b/nvim/.gitignore
new file mode 100644
index 0000000..cc5457a
--- /dev/null
+++ b/nvim/.gitignore
@@ -0,0 +1,8 @@
+tt.*
+.tests
+doc/tags
+debug
+.repro
+foo.*
+*.log
+data
diff --git a/nvim/.neoconf.json b/nvim/.neoconf.json
new file mode 100644
index 0000000..7c48087
--- /dev/null
+++ b/nvim/.neoconf.json
@@ -0,0 +1,15 @@
+{
+ "neodev": {
+ "library": {
+ "enabled": true,
+ "plugins": true
+ }
+ },
+ "neoconf": {
+ "plugins": {
+ "lua_ls": {
+ "enabled": true
+ }
+ }
+ }
+}
diff --git a/nvim/LICENSE b/nvim/LICENSE
new file mode 100644
index 0000000..261eeb9
--- /dev/null
+++ b/nvim/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/nvim/README.md b/nvim/README.md
new file mode 100644
index 0000000..185280b
--- /dev/null
+++ b/nvim/README.md
@@ -0,0 +1,4 @@
+# 💤 LazyVim
+
+A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
+Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
diff --git a/nvim/blink/cmp/fuzzy.db/data.mdb b/nvim/blink/cmp/fuzzy.db/data.mdb
new file mode 100644
index 0000000..7070bed
Binary files /dev/null and b/nvim/blink/cmp/fuzzy.db/data.mdb differ
diff --git a/nvim/blink/cmp/fuzzy.db/lock.mdb b/nvim/blink/cmp/fuzzy.db/lock.mdb
new file mode 100644
index 0000000..f872290
Binary files /dev/null and b/nvim/blink/cmp/fuzzy.db/lock.mdb differ
diff --git a/nvim/init.lua b/nvim/init.lua
new file mode 100644
index 0000000..2514f9e
--- /dev/null
+++ b/nvim/init.lua
@@ -0,0 +1,2 @@
+-- bootstrap lazy.nvim, LazyVim and your plugins
+require("config.lazy")
diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json
new file mode 100644
index 0000000..6421be6
--- /dev/null
+++ b/nvim/lazy-lock.json
@@ -0,0 +1,36 @@
+{
+ "LazyVim": { "branch": "main", "commit": "25abbf546d564dc484cf903804661ba12de45507" },
+ "blink.cmp": { "branch": "main", "commit": "3536ce464e82843b00c76718d9bfe1994647d686" },
+ "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
+ "catppuccin": { "branch": "main", "commit": "fa42eb5e26819ef58884257d5ae95dd0552b9a66" },
+ "conform.nvim": { "branch": "master", "commit": "973f3cb73887d510321653044791d7937c7ec0fa" },
+ "flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" },
+ "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
+ "gitsigns.nvim": { "branch": "main", "commit": "4666d040b60d1dc0e474ccd9a3fd3c4d67b4767c" },
+ "grug-far.nvim": { "branch": "main", "commit": "b3f9412b1ed76f14cfc68e1ee899873544330c80" },
+ "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
+ "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
+ "lualine.nvim": { "branch": "master", "commit": "a94fc68960665e54408fe37dcf573193c4ce82c9" },
+ "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
+ "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
+ "mini.ai": { "branch": "main", "commit": "96cd250fdea1fec929a62c7432de73e0f59788cd" },
+ "mini.icons": { "branch": "main", "commit": "94848dad1589a199f876539bd79befb0c5e3abf0" },
+ "mini.pairs": { "branch": "main", "commit": "42407ccb80ec59c84e7c91d815f42ed90a8cc093" },
+ "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" },
+ "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
+ "nvim-lint": { "branch": "master", "commit": "3c5e34c24834a67b1cb37600ab7663eefd2b0390" },
+ "nvim-lspconfig": { "branch": "master", "commit": "d005da998edad401524504d03c7a88a56d125224" },
+ "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
+ "nvim-treesitter-textobjects": { "branch": "master", "commit": "89ebe73cd2836db80a22d9748999ace0241917a5" },
+ "nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" },
+ "persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" },
+ "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
+ "snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" },
+ "telescope-project.nvim": { "branch": "master", "commit": "8e11df94419e444601c09828dadf70890484e443" },
+ "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" },
+ "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
+ "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },
+ "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
+ "ts-comments.nvim": { "branch": "main", "commit": "1bd9d0ba1d8b336c3db50692ffd0955fe1bb9f0c" },
+ "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
+}
diff --git a/nvim/lazy/LazyVim b/nvim/lazy/LazyVim
new file mode 160000
index 0000000..25abbf5
--- /dev/null
+++ b/nvim/lazy/LazyVim
@@ -0,0 +1 @@
+Subproject commit 25abbf546d564dc484cf903804661ba12de45507
diff --git a/nvim/lazy/blink.cmp b/nvim/lazy/blink.cmp
new file mode 160000
index 0000000..022521a
--- /dev/null
+++ b/nvim/lazy/blink.cmp
@@ -0,0 +1 @@
+Subproject commit 022521a8910a5543b0251b21c9e1a1e989745796
diff --git a/nvim/lazy/bufferline.nvim b/nvim/lazy/bufferline.nvim
new file mode 160000
index 0000000..655133c
--- /dev/null
+++ b/nvim/lazy/bufferline.nvim
@@ -0,0 +1 @@
+Subproject commit 655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3
diff --git a/nvim/lazy/catppuccin b/nvim/lazy/catppuccin
new file mode 160000
index 0000000..a0c769b
--- /dev/null
+++ b/nvim/lazy/catppuccin
@@ -0,0 +1 @@
+Subproject commit a0c769bc7cd04bbbf258b3d5f01e2bdce744108d
diff --git a/nvim/lazy/conform.nvim b/nvim/lazy/conform.nvim
new file mode 160000
index 0000000..6feb2f2
--- /dev/null
+++ b/nvim/lazy/conform.nvim
@@ -0,0 +1 @@
+Subproject commit 6feb2f28f9a9385e401857b21eeac3c1b66dd628
diff --git a/nvim/lazy/flash.nvim b/nvim/lazy/flash.nvim
new file mode 160000
index 0000000..3c94266
--- /dev/null
+++ b/nvim/lazy/flash.nvim
@@ -0,0 +1 @@
+Subproject commit 3c942666f115e2811e959eabbdd361a025db8b63
diff --git a/nvim/lazy/friendly-snippets b/nvim/lazy/friendly-snippets
new file mode 160000
index 0000000..572f566
--- /dev/null
+++ b/nvim/lazy/friendly-snippets
@@ -0,0 +1 @@
+Subproject commit 572f5660cf05f8cd8834e096d7b4c921ba18e175
diff --git a/nvim/lazy/gitsigns.nvim b/nvim/lazy/gitsigns.nvim
new file mode 160000
index 0000000..5f1b1e2
--- /dev/null
+++ b/nvim/lazy/gitsigns.nvim
@@ -0,0 +1 @@
+Subproject commit 5f1b1e25373cd589ecf418ced8c2ece28229dd83
diff --git a/nvim/lazy/grug-far.nvim b/nvim/lazy/grug-far.nvim
new file mode 160000
index 0000000..6fd7196
--- /dev/null
+++ b/nvim/lazy/grug-far.nvim
@@ -0,0 +1 @@
+Subproject commit 6fd719634c529bfbfe031a03b7af9d728d849dc7
diff --git a/nvim/lazy/lazy.nvim b/nvim/lazy/lazy.nvim
new file mode 160000
index 0000000..6c3bda4
--- /dev/null
+++ b/nvim/lazy/lazy.nvim
@@ -0,0 +1 @@
+Subproject commit 6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a
diff --git a/nvim/lazy/lazydev.nvim b/nvim/lazy/lazydev.nvim
new file mode 160000
index 0000000..2367a6c
--- /dev/null
+++ b/nvim/lazy/lazydev.nvim
@@ -0,0 +1 @@
+Subproject commit 2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c
diff --git a/nvim/lazy/lualine.nvim b/nvim/lazy/lualine.nvim
new file mode 160000
index 0000000..0c6cca9
--- /dev/null
+++ b/nvim/lazy/lualine.nvim
@@ -0,0 +1 @@
+Subproject commit 0c6cca9f2c63dadeb9225c45bc92bb95a151d4af
diff --git a/nvim/lazy/mason-lspconfig.nvim b/nvim/lazy/mason-lspconfig.nvim
new file mode 160000
index 0000000..1a31f82
--- /dev/null
+++ b/nvim/lazy/mason-lspconfig.nvim
@@ -0,0 +1 @@
+Subproject commit 1a31f824b9cd5bc6f342fc29e9a53b60d74af245
diff --git a/nvim/lazy/mason.nvim b/nvim/lazy/mason.nvim
new file mode 160000
index 0000000..fc98833
--- /dev/null
+++ b/nvim/lazy/mason.nvim
@@ -0,0 +1 @@
+Subproject commit fc98833b6da5de5a9c5b1446ac541577059555be
diff --git a/nvim/lazy/mini.ai b/nvim/lazy/mini.ai
new file mode 160000
index 0000000..5225f16
--- /dev/null
+++ b/nvim/lazy/mini.ai
@@ -0,0 +1 @@
+Subproject commit 5225f16eacf4dce2cb7204ca345123ef54e209d6
diff --git a/nvim/lazy/mini.icons b/nvim/lazy/mini.icons
new file mode 160000
index 0000000..397ed38
--- /dev/null
+++ b/nvim/lazy/mini.icons
@@ -0,0 +1 @@
+Subproject commit 397ed3807e96b59709ef3292f0a3e253d5c1dc0a
diff --git a/nvim/lazy/mini.pairs b/nvim/lazy/mini.pairs
new file mode 160000
index 0000000..69864a2
--- /dev/null
+++ b/nvim/lazy/mini.pairs
@@ -0,0 +1 @@
+Subproject commit 69864a2efb36c030877421634487fd90db1e4298
diff --git a/nvim/lazy/noice.nvim b/nvim/lazy/noice.nvim
new file mode 160000
index 0000000..0427460
--- /dev/null
+++ b/nvim/lazy/noice.nvim
@@ -0,0 +1 @@
+Subproject commit 0427460c2d7f673ad60eb02b35f5e9926cf67c59
diff --git a/nvim/lazy/nui.nvim b/nvim/lazy/nui.nvim
new file mode 160000
index 0000000..7cd18e7
--- /dev/null
+++ b/nvim/lazy/nui.nvim
@@ -0,0 +1 @@
+Subproject commit 7cd18e73cfbd70e1546931b7268b3eebaeff9391
diff --git a/nvim/lazy/nvim-lint b/nvim/lazy/nvim-lint
new file mode 160000
index 0000000..b47cbb2
--- /dev/null
+++ b/nvim/lazy/nvim-lint
@@ -0,0 +1 @@
+Subproject commit b47cbb249351873e3a571751c3fb66ed6369852f
diff --git a/nvim/lazy/nvim-lspconfig b/nvim/lazy/nvim-lspconfig
new file mode 160000
index 0000000..8adb3b5
--- /dev/null
+++ b/nvim/lazy/nvim-lspconfig
@@ -0,0 +1 @@
+Subproject commit 8adb3b5938f6074a1bcc36d3c3916f497d2e8ec4
diff --git a/nvim/lazy/nvim-treesitter b/nvim/lazy/nvim-treesitter
new file mode 160000
index 0000000..42fc28b
--- /dev/null
+++ b/nvim/lazy/nvim-treesitter
@@ -0,0 +1 @@
+Subproject commit 42fc28ba918343ebfd5565147a42a26580579482
diff --git a/nvim/lazy/nvim-treesitter-textobjects b/nvim/lazy/nvim-treesitter-textobjects
new file mode 160000
index 0000000..0f051e9
--- /dev/null
+++ b/nvim/lazy/nvim-treesitter-textobjects
@@ -0,0 +1 @@
+Subproject commit 0f051e9813a36481f48ca1f833897210dbcfffde
diff --git a/nvim/lazy/nvim-ts-autotag b/nvim/lazy/nvim-ts-autotag
new file mode 160000
index 0000000..a1d526a
--- /dev/null
+++ b/nvim/lazy/nvim-ts-autotag
@@ -0,0 +1 @@
+Subproject commit a1d526af391f6aebb25a8795cbc05351ed3620b5
diff --git a/nvim/lazy/persistence.nvim b/nvim/lazy/persistence.nvim
new file mode 160000
index 0000000..166a79a
--- /dev/null
+++ b/nvim/lazy/persistence.nvim
@@ -0,0 +1 @@
+Subproject commit 166a79a55bfa7a4db3e26fc031b4d92af71d0b51
diff --git a/nvim/lazy/pkg-cache.lua b/nvim/lazy/pkg-cache.lua
new file mode 100644
index 0000000..9cdc8f7
--- /dev/null
+++ b/nvim/lazy/pkg-cache.lua
@@ -0,0 +1,10 @@
+return {pkgs={{name="noice.nvim",source="lazy",spec=function()
+return {
+ -- nui.nvim can be lazy loaded
+ { "MunifTanjim/nui.nvim", lazy = true },
+ {
+ "folke/noice.nvim",
+ },
+}
+
+end,dir="/home/daniel/.local/share/nvim/lazy/noice.nvim",file="lazy.lua",},{name="plenary.nvim",source="lazy",spec={"nvim-lua/plenary.nvim",lazy=true,},dir="/home/daniel/.local/share/nvim/lazy/plenary.nvim",file="community",},{name="telescope.nvim",source="rockspec",spec={"telescope.nvim",specs={{"nvim-lua/plenary.nvim",lazy=true,},},build=false,},dir="/home/daniel/.local/share/nvim/lazy/telescope.nvim",file="telescope.nvim-scm-1.rockspec",},},version=12,}
\ No newline at end of file
diff --git a/nvim/lazy/plenary.nvim b/nvim/lazy/plenary.nvim
new file mode 160000
index 0000000..857c5ac
--- /dev/null
+++ b/nvim/lazy/plenary.nvim
@@ -0,0 +1 @@
+Subproject commit 857c5ac632080dba10aae49dba902ce3abf91b35
diff --git a/nvim/lazy/readme/doc/friendly-snippets.md b/nvim/lazy/readme/doc/friendly-snippets.md
new file mode 100644
index 0000000..0094737
--- /dev/null
+++ b/nvim/lazy/readme/doc/friendly-snippets.md
@@ -0,0 +1,136 @@
+# Friendly Snippets
+
+Snippets collection for a set of different programming languages.
+
+The only goal is to have one community driven repository for all kinds of
+snippets in all programming languages, this way you can have it all in one
+place.
+
+## Install
+
+Use your plugin manager of choice, e.g.
+
+### With Lazy.nvim
+
+```lua
+{ "rafamadriz/friendly-snippets" }
+```
+
+> [!WARNING]
+> If you're using LuaSnip make sure to use
+> `require("luasnip.loaders.from_vscode").lazy_load()`, and add
+> `friendly-snippets` as a dependency for LuaSnip, otherwise snippets might not
+> be detected. If you don't use `lazy_load()` you might notice a slower
+> startup-time
+>
+> ```lua
+> {
+> "L3MON4D3/LuaSnip",
+> dependencies = { "rafamadriz/friendly-snippets" },
+> }
+> ```
+
+### With Packer
+
+```lua
+use "rafamadriz/friendly-snippets"
+```
+
+### With vim-plug
+
+```vim
+Plug "rafamadriz/friendly-snippets"
+```
+
+### With coc.nvim
+
+```vim
+:CocInstall https://github.com/rafamadriz/friendly-snippets@main
+```
+
+## Usage
+
+This collection of snippets should work with any snippet engine that supports
+loading vscode snippets. Like for example:
+
+- [vim-vsnip](https://github.com/hrsh7th/vim-vsnip)
+- [LuaSnip](https://github.com/L3MON4D3/LuaSnip)
+- [coc-snippets](https://github.com/neoclide/coc-snippets)
+
+## Add snippets from a framework to a filetype.
+
+> [!NOTE]
+> This is handled by your snippet engine and has nothing to do with this snippets collection
+
+There's extra snippets included in this repo but they are not added by default,
+since it would be irrelevant for people not using those frameworks. See
+[`snippets/frameworks`](https://github.com/rafamadriz/friendly-snippets/tree/main/snippets/frameworks)
+
+For example: if you want to add rails snippets to ruby.
+
+With LuaSnip:
+
+```lua
+require'luasnip'.filetype_extend("ruby", {"rails"})
+```
+
+With vim-vsnip:
+
+```viml
+let g:vsnip_filetypes.ruby = ['rails']
+```
+
+## Excluding snippets
+
+> [!NOTE]
+> This is handled by your snippet engine and has nothing to do with this snippets collection
+
+With LuaSnip, see `help luasnip-loaders`
+
+```lua
+-- will exclude all javascript snippets
+require("luasnip.loaders.from_vscode").load {
+ exclude = { "javascript" },
+}
+```
+
+## Showcase
+
+### HTML
+
+
+
+### JS
+
+
+
+## TODO
+
+- Add all included snippets to the
+ [Wiki](https://github.com/rafamadriz/friendly-snippets/wiki).
+
+## Thanks to all contributors
+
+
+
+
+
+## Credits
+
+A good portion of the snippets have been forked from the following repositories:
+
+- [vscode-standardjs-snippets](https://github.com/capaj/vscode-standardjs-snippets)
+- [python-snippets](https://github.com/cstrap/python-snippets)
+- [vs-snippets](https://github.com/kitagry/vs-snippets)
+- [Wscats/html-snippets](https://github.com/Wscats/html-snippets)
+- [Harry-Ross/vscode-c-snippets](https://github.com/Harry-Ross/vscode-c-snippets)
+- [vscode-jekyll-snippets](https://github.com/edheltzel/vscode-jekyll-snippets)
+- [vscode-fortran-support](https://github.com/krvajal/vscode-fortran-support)
+- [vscode_cobol](https://github.com/spgennard/vscode_cobol)
+- [VSCode-LaTeX-Snippets](https://github.com/JeffersonQin/VSCode-LaTeX-Snippets)
+- [vscode-react-javascript-snippets](https://github.com/dsznajder/vscode-react-javascript-snippets)
+- [honza/vim-snippets - Verilog](https://github.com/honza/vim-snippets/blob/master/snippets/verilog.snippets)
+- [vscode-relm4-snippets](https://github.com/Relm4/vscode-relm4-snippets)
+- And more...
+
+
\ No newline at end of file
diff --git a/nvim/lazy/readme/doc/nui.nvim-lua-nui-input.md b/nvim/lazy/readme/doc/nui.nvim-lua-nui-input.md
new file mode 100644
index 0000000..90cddc5
--- /dev/null
+++ b/nvim/lazy/readme/doc/nui.nvim-lua-nui-input.md
@@ -0,0 +1,116 @@
+# Input
+
+Input is an abstraction layer on top of Popup.
+
+It uses prompt buffer (check `:h prompt-buffer`) for its popup window.
+
+```lua
+local Input = require("nui.input")
+local event = require("nui.utils.autocmd").event
+
+local popup_options = {
+ relative = "cursor",
+ position = {
+ row = 1,
+ col = 0,
+ },
+ size = 20,
+ border = {
+ style = "rounded",
+ text = {
+ top = "[Input]",
+ top_align = "left",
+ },
+ },
+ win_options = {
+ winhighlight = "Normal:Normal",
+ },
+}
+
+local input = Input(popup_options, {
+ prompt = "> ",
+ default_value = "42",
+ on_close = function()
+ print("Input closed!")
+ end,
+ on_submit = function(value)
+ print("Value submitted: ", value)
+ end,
+ on_change = function(value)
+ print("Value changed: ", value)
+ end,
+})
+```
+
+If you provide the `on_change` function, it'll be run everytime value changes.
+
+Pressing `` runs the `on_submit` callback function and closes the window.
+Pressing `` runs the `on_close` callback function and closes the window.
+
+Of course, you can override the default keymaps and add more. For example:
+
+```lua
+-- unmount input by pressing `` in normal mode
+input:map("n", "", function()
+ input:unmount()
+end, { noremap = true })
+```
+
+You can manipulate the associated buffer and window using the
+`input.bufnr` and `input.winid` properties.
+
+**NOTE**: the first argument accepts options for `nui.popup` component.
+
+## Options
+
+### `prompt`
+
+**Type:** `string` or `NuiText`
+
+Prefix in the input.
+
+### `default_value`
+
+**Type:** `string`
+
+Default value placed in the input on mount
+
+### `on_close`
+
+**Type:** `function`
+
+_Signature:_ `on_close() -> nil`
+
+Callback function, called when input is closed.
+
+### `on_submit`
+
+**Type:** `function`
+
+_Signature:_ `on_submit(value: string) -> nil`
+
+Callback function, called when input value is submitted.
+
+### `on_change`
+
+**Type:** `function`
+
+_Signature:_ `on_change(value: string) -> nil`
+
+Callback function, called when input value is changed.
+
+### `disable_cursor_position_patch`
+
+By default, `nui.input` will try to make sure the cursor on parent window is not
+moved after input is submitted/closed. If you want to disable this behavior
+for some reason, you can set `disable_cursor_position_patch` to `true`.
+
+## Methods
+
+Methods from `nui.popup` are also available for `nui.input`.
+
+## Wiki Page
+
+You can find additional documentation/examples/guides/tips-n-tricks in [nui.input wiki page](https://github.com/MunifTanjim/nui.nvim/wiki/nui.input).
+
+
\ No newline at end of file
diff --git a/nvim/lazy/readme/doc/nui.nvim-lua-nui-layout.md b/nvim/lazy/readme/doc/nui.nvim-lua-nui-layout.md
new file mode 100644
index 0000000..9767877
--- /dev/null
+++ b/nvim/lazy/readme/doc/nui.nvim-lua-nui-layout.md
@@ -0,0 +1,309 @@
+# Layout
+
+Layout is a helper component for creating complex layout by automatically
+handling the calculation for position and size of other components.
+
+**Example**
+
+```lua
+local Layout = require("nui.layout")
+local Popup = require("nui.popup")
+
+local top_popup = Popup({ border = "double" })
+local bottom_left_popup = Popup({ border = "single" })
+local bottom_right_popup = Popup({ border = "single" })
+
+local layout = Layout(
+ {
+ position = "50%",
+ size = {
+ width = 80,
+ height = 40,
+ },
+ },
+ Layout.Box({
+ Layout.Box(top_popup, { size = "40%" }),
+ Layout.Box({
+ Layout.Box(bottom_left_popup, { size = "50%" }),
+ Layout.Box(bottom_right_popup, { size = "50%" }),
+ }, { dir = "row", size = "60%" }),
+ }, { dir = "col" })
+)
+
+layout:mount()
+```
+
+_Signature:_ `Layout(options, box)` or `Layout(component, box)`
+
+`component` can be `Popup` or `Split`.
+
+## Options (for float layout)
+
+### `anchor`
+
+**Type:** `"NW"` / `"NE"` / `"SW"` / `"SE"`
+
+Decides which corner of the layout to place at `position`.
+
+---
+
+### `relative`
+
+**Type:** `string` or `table`
+
+This option affects how `position` and `size` are calculated.
+
+**Examples**
+
+Relative to cursor on current window:
+
+```lua
+relative = "cursor",
+```
+
+Relative to the current editor screen:
+
+```lua
+relative = "editor",
+```
+
+Relative to the current window (_default_):
+
+```lua
+relative = "win",
+```
+
+Relative to the window with specific id:
+
+```lua
+relative = {
+ type = "win",
+ winid = 5,
+},
+```
+
+Relative to the buffer position:
+
+```lua
+relative = {
+ type = "buf",
+ -- zero-indexed
+ position = {
+ row = 5,
+ col = 5,
+ },
+},
+```
+
+---
+
+### `position`
+
+**Type:** `number` or `percentage string` or `table`
+
+Position is calculated from the top-left corner.
+
+If `position` is `number` or `percentage string`, it applies to both `row` and `col`.
+Or you can pass a table to set them separately.
+
+For `percentage string`, position is calculated according to the option `relative`.
+If `relative` is set to `"buf"` or `"cursor"`, `percentage string` is not allowed.
+
+**Examples**
+
+```lua
+position = 50,
+```
+
+```lua
+position = "50%",
+```
+
+```lua
+position = {
+ row = 30,
+ col = 20,
+},
+```
+
+```lua
+position = {
+ row = "20%",
+ col = "50%",
+},
+```
+
+---
+
+### `size`
+
+**Type:** `number` or `percentage string` or `table`
+
+Determines the size of the layout.
+
+If `size` is `number` or `percentage string`, it applies to both `width` and `height`.
+You can also pass a table to set them separately.
+
+For `percentage string`, `size` is calculated according to the option `relative`.
+If `relative` is set to `"buf"` or `"cursor"`, window size is considered.
+
+Decimal `number` in `(0,1)` range is treated similar to `percentage string`. For
+example: `0.5` is same as `"50%"`.
+
+**Examples**
+
+```lua
+size = 50,
+```
+
+```lua
+size = "50%",
+```
+
+```lua
+size = 0.5,
+```
+
+```lua
+size = {
+ width = 80,
+ height = 40,
+},
+```
+
+```lua
+size = {
+ width = "80%",
+ height = 0.6,
+},
+```
+
+## Options (for split layout)
+
+### `relative`
+
+**Type:** `string` or `table`
+
+This option affects how `size` is calculated.
+
+**Examples**
+
+Split current editor screen:
+
+```lua
+relative = "editor"
+```
+
+Split current window (_default_):
+
+```lua
+relative = "win"
+```
+
+Split window with specific id:
+
+```lua
+relative = {
+ type = "win",
+ winid = 42,
+}
+```
+
+---
+
+### `position`
+
+**Type:** `"top" | "right"| "bottom" | "left"`.
+
+---
+
+### `size`
+
+**Type:** `number` or `percentage string`
+
+Determines the size of the layout.
+
+For `percentage string`, size is calculated according to the option `relative`.
+
+## Layout.Box
+
+_Signature:_ `Layout.Box(box, options)`
+
+**Parameters**
+
+| Name | Type | Description |
+| --------- | ------------------------------ | ----------------------------------------- |
+| `box` | `Layout.Box[]` / nui component | list of `Layout.Box` or any nui component |
+| `options` | `table` | box options |
+
+`options` is a `table` having the following keys:
+
+| Key | Type | Description |
+| ------ | ----------------------------- | ------------------------------------------------------ |
+| `dir` | `"col"` / `"row"` (_default_) | arrangement direction, only if `box` is `Layout.Box[]` |
+| `grow` | `number` | growth factor to fill up the box free space |
+| `size` | `number` / `string` / `table` | optional if `grow` is present |
+
+## Methods
+
+### `layout:mount`
+
+_Signature:_ `layout:mount()`
+
+Mounts the layout with all the components.
+
+**Examples**
+
+```lua
+layout:mount()
+```
+
+### `layout:unmount`
+
+_Signature:_ `layout:unmount()`
+
+Unmounts the layout with all the components.
+
+**Examples**
+
+```lua
+layout:unmount()
+```
+
+### `layout:hide`
+
+_Signature:_ `layout:hide()`
+
+Hides the layout with all the components. Preserves the buffer (related content, autocmds and keymaps).
+
+### `layout:show`
+
+_Signature:_ `layout:show()`
+
+Shows the hidden layout with all the components.
+
+### `layout:update`
+
+_Signature:_ `layout:update(config, box?)` or `layout:update(box?)`
+
+**Parameters**
+
+`config` is a `table` having the following keys:
+
+| Key | Type |
+| ---------- | --------------------------------- |
+| `anchor` | `"NW"` / `"NE"` / `"SW"` / `"SE"` |
+| `relative` | `string` / `table` |
+| `position` | `string` / `table` |
+| `size` | `string` / `table` |
+
+`box` is a `table` returned by `Layout.Box`.
+
+They are the same options used for layout initialization.
+
+## Wiki Page
+
+You can find additional documentation/examples/guides/tips-n-tricks in
+[nui.layout wiki page](https://github.com/MunifTanjim/nui.nvim/wiki/nui.layout).
+
+
\ No newline at end of file
diff --git a/nvim/lazy/readme/doc/nui.nvim-lua-nui-line.md b/nvim/lazy/readme/doc/nui.nvim-lua-nui-line.md
new file mode 100644
index 0000000..925b556
--- /dev/null
+++ b/nvim/lazy/readme/doc/nui.nvim-lua-nui-line.md
@@ -0,0 +1,102 @@
+# NuiLine
+
+NuiLine is an abstraction layer on top of the following native functions:
+
+- `vim.api.nvim_buf_set_lines` (check `:h nvim_buf_set_lines()`)
+- `vim.api.nvim_buf_set_text` (check `:h nvim_buf_set_text()`)
+- `vim.api.nvim_buf_add_highlight` (check `:h nvim_buf_add_highlight()`)
+
+It helps you create line on the buffer containing multiple [`NuiText`](../text)s.
+
+_Signature:_ `NuiLine(texts?)`
+
+**Example**
+
+```lua
+local NuiLine = require("nui.line")
+
+local line = NuiLine()
+
+line:append("Something Went Wrong!", "Error")
+
+local bufnr, ns_id, linenr_start = 0, -1, 1
+
+line:render(bufnr, ns_id, linenr_start)
+```
+
+## Parameters
+
+### `texts`
+
+**Type:** `table[]`
+
+List of `NuiText` objects to set as initial texts.
+
+**Example**
+
+```lua
+local text_one = NuiText("One")
+local text_two = NuiText("Two")
+local line = NuiLine({ text_one, text_two })
+```
+
+## Methods
+
+### `line:append`
+
+_Signature:_ `line:append(content, highlight?)`
+
+Adds a chunk of content to the line.
+
+**Parameters**
+
+| Name | Type | Description |
+| ----------- | -------------------------------- | --------------------- |
+| `content` | `string` / `NuiText` / `NuiLine` | content |
+| `highlight` | `string` or `table` | highlight information |
+
+If `text` is `string`, these parameters are passed to `NuiText`
+and a `NuiText` object is returned.
+
+It `content` is a `NuiText`/`NuiLine` object, it is returned unchanged.
+
+### `line:content`
+
+_Signature:_ `line:content()`
+
+Returns the line content.
+
+### `line:highlight`
+
+_Signature:_ `line:highlight(bufnr, ns_id, linenr)`
+
+Applies highlight for the line.
+
+**Parameters**
+
+| Name | Type | Description |
+| -------- | -------- | ---------------------------------------------- |
+| `bufnr` | `number` | buffer number |
+| `ns_id` | `number` | namespace id (use `-1` for fallback namespace) |
+| `linenr` | `number` | line number (1-indexed) |
+
+### `line:render`
+
+_Signature:_ `line:render(bufnr, ns_id, linenr_start, linenr_end?)`
+
+Sets the line on buffer and applies highlight.
+
+**Parameters**
+
+| Name | Type | Description |
+| -------------- | -------- | ---------------------------------------------- |
+| `bufnr` | `number` | buffer number |
+| `ns_id` | `number` | namespace id (use `-1` for fallback namespace) |
+| `linenr_start` | `number` | start line number (1-indexed) |
+| `linenr_end` | `number` | end line number (1-indexed) |
+
+## Wiki Page
+
+You can find additional documentation/examples/guides/tips-n-tricks in [nui.line wiki page](https://github.com/MunifTanjim/nui.nvim/wiki/nui.line).
+
+
\ No newline at end of file
diff --git a/nvim/lazy/readme/doc/nui.nvim-lua-nui-menu.md b/nvim/lazy/readme/doc/nui.nvim-lua-nui-menu.md
new file mode 100644
index 0000000..ae9c550
--- /dev/null
+++ b/nvim/lazy/readme/doc/nui.nvim-lua-nui-menu.md
@@ -0,0 +1,209 @@
+# Menu
+
+`Menu` is abstraction layer on top of `Popup`.
+
+```lua
+local Menu = require("nui.menu")
+local event = require("nui.utils.autocmd").event
+
+local popup_options = {
+ relative = "cursor",
+ position = {
+ row = 1,
+ col = 0,
+ },
+ border = {
+ style = "rounded",
+ text = {
+ top = "[Choose Item]",
+ top_align = "center",
+ },
+ },
+ win_options = {
+ winhighlight = "Normal:Normal",
+ }
+}
+
+local menu = Menu(popup_options, {
+ lines = {
+ Menu.separator("Group One"),
+ Menu.item("Item 1"),
+ Menu.item("Item 2"),
+ Menu.separator("Group Two", {
+ char = "-",
+ text_align = "right",
+ }),
+ Menu.item("Item 3"),
+ Menu.item("Item 4"),
+ },
+ max_width = 20,
+ keymap = {
+ focus_next = { "j", "", "" },
+ focus_prev = { "k", "", "" },
+ close = { "", "" },
+ submit = { "", "" },
+ },
+ on_close = function()
+ print("CLOSED")
+ end,
+ on_submit = function(item)
+ print("SUBMITTED", vim.inspect(item))
+ end,
+})
+```
+
+You can manipulate the associated buffer and window using the
+`split.bufnr` and `split.winid` properties.
+
+**NOTE**: the first argument accepts options for `nui.popup` component.
+
+## Options
+
+### `lines`
+
+**Type:** `table`
+
+List of menu items.
+
+**`Menu.item(content, data?)`**
+
+`Menu.item` is used to create an item object for the `Menu`.
+
+**Parameters**
+
+| Name | Type |
+| --------- | -------------------------------- |
+| `content` | `string` / `NuiText` / `NuiLine` |
+| `data` | `table` / `nil` |
+
+**Example**
+
+```lua
+Menu.item("One") --> { text = "One" }
+
+Menu.item("Two", { id = 2 }) --> { id = 2, text = "Two" }
+```
+
+This is what you get as the argument of `on_submit` callback function.
+You can include whatever you want in the item object.
+
+**`Menu.separator(content?, options?)`**
+
+`Menu.separator` is used to create a menu item that can't be focused.
+
+**Parameters**
+
+| Name | Type |
+| --------- | ---------------------------------------------------------------------------------- |
+| `content` | `string` / `NuiText` / `NuiLine` / `nil` |
+| `options` | `{ char?: string\|NuiText, text_align?: "'left'"\|"'center'"\|"'right'" }` / `nil` |
+
+You can just use `Menu.item` only and implement `Menu.separator`'s behavior
+by providing a custom `should_skip_item` function.
+
+### `prepare_item`
+
+**Type:** `function`
+
+_Signature:_ `prepare_item(item)`
+
+If provided, this function is used for preparing each menu item.
+
+The return value should be a `NuiLine` object or `string` or a list containing either of them.
+
+If return value is `nil`, that node will not be rendered.
+
+### `should_skip_item`
+
+**Type:** `function`
+
+_Signature:_ `should_skip_item(item)`
+
+If provided, this function is used to determine if an item should be
+skipped when focusing previous/next item.
+
+The return value should be `boolean`.
+
+By default, items created by `Menu.separator` are skipped.
+
+### `max_height`
+
+**Type:** `number`
+
+Maximum height of the menu.
+
+### `min_height`
+
+**Type:** `number`
+
+Minimum height of the menu.
+
+### `max_width`
+
+**Type:** `number`
+
+Maximum width of the menu.
+
+### `min_width`
+
+**Type:** `number`
+
+Minimum width of the menu.
+
+### `keymap`
+
+**Type:** `table`
+
+Key mappings for the menu.
+
+**Example**
+
+```lua
+keymap = {
+ close = { "", "" },
+ focus_next = { "j", "", "" },
+ focus_prev = { "k", "", "" },
+ submit = { "" },
+},
+```
+
+### `on_change`
+
+**Type:** `function`
+
+_Signature:_ `on_change(item, menu) -> nil`
+
+Callback function, called when menu item is focused.
+
+### `on_close`
+
+**Type:** `function`
+
+_Signature:_ `on_close() -> nil`
+
+Callback function, called when menu is closed.
+
+### `on_submit`
+
+**Type:** `function`
+
+_Signature:_ `on_submit(item) -> nil`
+
+Callback function, called when menu is submitted.
+
+## Methods
+
+Methods from `nui.popup` are also available for `nui.menu`.
+
+## Properties
+
+### `menu.tree`
+
+The underlying `NuiTree` object used for rendering the menu. You can use it to
+manipulate the menu items on-the-fly and access all the `NuiTree` methods.
+
+## Wiki Page
+
+You can find additional documentation/examples/guides/tips-n-tricks in [nui.menu wiki page](https://github.com/MunifTanjim/nui.nvim/wiki/nui.menu).
+
+
\ No newline at end of file
diff --git a/nvim/lazy/readme/doc/nui.nvim-lua-nui-popup.md b/nvim/lazy/readme/doc/nui.nvim-lua-nui-popup.md
new file mode 100644
index 0000000..267ea93
--- /dev/null
+++ b/nvim/lazy/readme/doc/nui.nvim-lua-nui-popup.md
@@ -0,0 +1,676 @@
+# Popup
+
+Popup is an abstraction layer on top of window.
+
+Creates a new popup object (but does not mount it immediately).
+
+**Examples**
+
+```lua
+local Popup = require("nui.popup")
+
+local popup = Popup({
+ position = "50%",
+ size = {
+ width = 80,
+ height = 40,
+ },
+ enter = true,
+ focusable = true,
+ zindex = 50,
+ relative = "editor",
+ border = {
+ padding = {
+ top = 2,
+ bottom = 2,
+ left = 3,
+ right = 3,
+ },
+ style = "rounded",
+ text = {
+ top = " I am top title ",
+ top_align = "center",
+ bottom = "I am bottom title",
+ bottom_align = "left",
+ },
+ },
+ buf_options = {
+ modifiable = true,
+ readonly = false,
+ },
+ win_options = {
+ winblend = 10,
+ winhighlight = "Normal:Normal,FloatBorder:FloatBorder",
+ },
+})
+```
+
+You can manipulate the associated buffer and window using the
+`split.bufnr` and `split.winid` properties.
+
+## Options
+
+### `border`
+
+**Type:** `table`
+
+Contains all border related options.
+
+#### `border.padding`
+
+**Type:** `table`
+
+Controls the popup padding.
+
+**Examples**
+
+It can be a list (`table`) with number of cells for top, right, bottom and left.
+The order behaves like [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS) padding.
+
+```lua
+border = {
+ -- `1` for top/bottom and `2` for left/right
+ padding = { 1, 2 },
+},
+```
+
+You can also use a map (`table`) to set padding at specific side:
+
+```lua
+border = {
+ -- `1` for top, `2` for left, `0` for other sides
+ padding = {
+ top = 1,
+ left = 2,
+ },
+},
+```
+
+#### `border.style`
+
+**Type:** `string` or `table`
+
+Controls the styling of the border.
+
+**Examples**
+
+Can be one of the pre-defined styles: `"double"`, `"none"`, `"rounded"`, `"shadow"`, `"single"`, `"solid"` or `"default"`.
+
+```lua
+border = {
+ style = "double",
+},
+```
+
+List (`table`) of characters starting from the top-left corner and then clockwise:
+
+```lua
+border = {
+ style = { "â•", "─", "â•®", "│", "╯", "─", "â•°", "│" },
+},
+```
+
+Map (`table`) with named characters:
+
+```lua
+border = {
+ style = {
+ top_left = "â•", top = "─", top_right = "â•®",
+ left = "│", right = "│",
+ bottom_left = "╰", bottom = "─", bottom_right = "╯",
+ },
+},
+```
+
+If you don't need all these options, you can also pass the value of `border.style` to `border`
+directly.
+
+To set the highlight group for all the border characters, use the `win_options.winhighlight`
+option and include the name of highlight group for `FloatBorder`.
+
+**Examples**
+
+```lua
+win_options = {
+ winhighlight = "Normal:Normal,FloatBorder:SpecialChar",
+},
+```
+
+To set the highlight group for individual border character, you can use `NuiText` or a tuple
+with `(char, hl_group)`.
+
+**Examples**
+
+```lua
+border = {
+ style = { { [[/]], "SpecialChar" }, [[─]], NuiText([[\]], "SpecialChar"), [[│]] },
+},
+```
+
+#### `border.text`
+
+**Type:** `table`
+
+Text displayed on the border (as title/footnote).
+
+| Key | Type | Description |
+| ---------------- | -------------------------------------------- | ---------------------------- |
+| `"top"` | `string` / `NuiLine` / `NuiText` | top border text |
+| `"top_align"` | `"left"` / `"right"`/ `"center"` _(default)_ | top border text alignment |
+| `"bottom"` | `string` / `NuiLine` / `NuiText` | bottom border text |
+| `"bottom_align"` | `"left"` / `"right"`/ `"center"` _(default)_ | bottom border text alignment |
+
+`"top"` and `"bottom"` also supports list of `(text, hl_group)` tuples, just like the native popup.
+
+**Examples**
+
+```lua
+border = {
+ text = {
+ top = "Popup Title",
+ top_align = "center",
+ },
+},
+```
+
+---
+
+### `ns_id`
+
+**Type:** `number` or `string`
+
+Namespace id (`number`) or name (`string`).
+
+---
+
+### `anchor`
+
+**Type:** `"NW"` / `"NE"` / `"SW"` / `"SE"`
+
+Decides which corner of the popup to place at `position`.
+
+---
+
+### `relative`
+
+**Type:** `string` or `table`
+
+This option affects how `position` and `size` are calculated.
+
+**Examples**
+
+Relative to cursor on current window:
+
+```lua
+relative = "cursor",
+```
+
+Relative to the current editor screen:
+
+```lua
+relative = "editor",
+```
+
+Relative to the current window (_default_):
+
+```lua
+relative = "win",
+```
+
+Relative to the window with specific id:
+
+```lua
+relative = {
+ type = "win",
+ winid = 5,
+},
+```
+
+Relative to the buffer position:
+
+```lua
+relative = {
+ type = "buf",
+ -- zero-indexed
+ position = {
+ row = 5,
+ col = 5,
+ },
+},
+```
+
+---
+
+### `position`
+
+**Type:** `number` or `percentage string` or `table`
+
+Position is calculated from the top-left corner.
+
+If `position` is `number` or `percentage string`, it applies to both `row` and `col`.
+Or you can pass a table to set them separately.
+
+For `percentage string`, position is calculated according to the option `relative`.
+If `relative` is set to `"buf"` or `"cursor"`, `percentage string` is not allowed.
+
+**Examples**
+
+```lua
+position = 50,
+```
+
+```lua
+position = "50%",
+```
+
+```lua
+position = {
+ row = 30,
+ col = 20,
+},
+```
+
+```lua
+position = {
+ row = "20%",
+ col = "50%",
+},
+```
+
+---
+
+### `size`
+
+**Type:** `number` or `percentage string` or `table`
+
+Determines the size of the popup.
+
+If `size` is `number` or `percentage string`, it applies to both `width` and `height`.
+You can also pass a table to set them separately.
+
+For `percentage string`, `size` is calculated according to the option `relative`.
+If `relative` is set to `"buf"` or `"cursor"`, window size is considered.
+
+Decimal `number` in `(0,1)` range is treated similar to `percentage string`. For
+example: `0.5` is same as `"50%"`.
+
+**Examples**
+
+```lua
+size = 50,
+```
+
+```lua
+size = "50%",
+```
+
+```lua
+size = 0.5,
+```
+
+```lua
+size = {
+ width = 80,
+ height = 40,
+},
+```
+
+```lua
+size = {
+ width = "80%",
+ height = 0.6,
+},
+```
+
+---
+
+### `enter`
+
+**Type:** `boolean`
+
+If `true`, the popup is entered immediately after mount.
+
+**Examples**
+
+```lua
+enter = true,
+```
+
+---
+
+### `focusable`
+
+**Type:** `boolean`
+
+If `false`, the popup can not be entered by user actions (wincmds, mouse events).
+
+**Examples**
+
+```lua
+focusable = true,
+```
+
+---
+
+### `zindex`
+
+**Type:** `number`
+
+Sets the order of the popup on z-axis.
+
+Popup with higher the `zindex` goes on top of popups with lower `zindex`.
+
+**Examples**
+
+```lua
+zindex = 50,
+```
+
+---
+
+### `buf_options`
+
+**Type:** `table`
+
+Contains all buffer related options (check `:h options | /local to buffer`).
+
+**Examples**
+
+```lua
+buf_options = {
+ modifiable = false,
+ readonly = true,
+},
+```
+
+---
+
+### `win_options`
+
+**Type:** `table`
+
+Contains all window related options (check `:h options | /local to window`).
+
+**Examples**
+
+```lua
+win_options = {
+ winblend = 10,
+ winhighlight = "Normal:Normal,FloatBorder:FloatBorder",
+},
+```
+
+---
+
+### `bufnr`
+
+**Type:** `number`
+
+You can pass `bufnr` of an existing buffer to display it on the popup.
+
+**Examples:**
+
+```lua
+bufnr = vim.api.nvim_get_current_buf(),
+```
+
+## Methods
+
+### `popup:mount`
+
+_Signature:_ `popup:mount()`
+
+Mounts the popup.
+
+**Examples**
+
+```lua
+popup:mount()
+```
+
+---
+
+### `popup:unmount`
+
+_Signature:_ `popup:unmount()`
+
+Unmounts the popup.
+
+**Examples**
+
+```lua
+popup:unmount()
+```
+
+---
+
+### `popup:hide`
+
+_Signature:_ `popup:hide()`
+
+Hides the popup window. Preserves the buffer (related content, autocmds and keymaps).
+
+---
+
+### `popup:show`
+
+_Signature:_ `popup:show()`
+
+Shows the hidden popup window.
+
+---
+
+### `popup:map`
+
+_Signature:_ `popup:map(mode, key, handler, opts) -> nil`
+
+Sets keymap for the popup.
+
+**Parameters**
+
+| Name | Type | Description |
+| --------- | --------------------- | --------------------------------------------------------------------------- |
+| `mode` | `string` | check `:h :map-modes` |
+| `key` | `string` | key for the mapping |
+| `handler` | `string` / `function` | handler for the mapping |
+| `opts` | `table` | check `:h :map-arguments` (including `remap`/`noremap`, excluding `buffer`) |
+
+**Examples**
+
+```lua
+local ok = popup:map("n", "", function(bufnr)
+ print("ESC pressed in Normal mode!")
+end, { noremap = true })
+```
+
+---
+
+### `popup:unmap`
+
+_Signature:_ `popup:unmap(mode, key) -> nil`
+
+Deletes keymap for the popup.
+
+**Parameters**
+
+| Name | Type | Description |
+| ------ | ------------- | --------------------- |
+| `mode` | `"n"` / `"i"` | check `:h :map-modes` |
+| `key` | `string` | key for the mapping |
+
+**Examples**
+
+```lua
+local ok = popup:unmap("n", "")
+```
+
+---
+
+### `popup:on`
+
+_Signature:_ `popup:on(event, handler, options)`
+
+Defines `autocmd` to run on specific events for this popup.
+
+**Parameters**
+
+| Name | Type | Description |
+| --------- | --------------------- | ------------------------------------------ |
+| `event` | `string[]` / `string` | check `:h events` |
+| `handler` | `function` | handler function for event |
+| `options` | `table` | keys `once`, `nested` and values `boolean` |
+
+**Examples**
+
+```lua
+local event = require("nui.utils.autocmd").event
+
+popup:on({ event.BufLeave }, function()
+ popup:unmount()
+end, { once = true })
+```
+
+`event` can be expressed as any of the followings:
+
+```lua
+{ event.BufLeave, event.BufDelete }
+-- or
+{ event.BufLeave, "BufDelete" }
+-- or
+event.BufLeave
+-- or
+"BufLeave"
+-- or
+"BufLeave,BufDelete"
+```
+
+---
+
+### `popup:off`
+
+_Signature:_ `popup:off(event)`
+
+Removes `autocmd` defined with `popup:on({ ... })`
+
+**Parameters**
+
+| Name | Type | Description |
+| ------- | --------------------- | ----------------- |
+| `event` | `string[]` / `string` | check `:h events` |
+
+**Examples**
+
+```lua
+popup:off("*")
+```
+
+---
+
+### `popup:update_layout`
+
+_Signature:_ `popup:update_layout(config)`
+
+Sets the layout of the popup. You can use this method to change popup's
+size or position after it's mounted.
+
+**Parameters**
+
+`config` is a `table` having the following keys:
+
+| Key | Type |
+| ---------- | --------------------------------- |
+| `anchor` | `"NW"` / `"NE"` / `"SW"` / `"SE"` |
+| `relative` | `string` / `table` |
+| `position` | `string` / `table` |
+| `size` | `string` / `table` |
+
+They are the same options used for popup initialization.
+
+**Examples**
+
+```lua
+popup:update_layout({
+ relative = "win",
+ size = {
+ width = 80,
+ height = 40,
+ },
+ position = {
+ row = 30,
+ col = 20,
+ },
+})
+```
+
+---
+
+### `popup.border:set_highlight`
+
+_Signature:_ `popup.border:set_highlight(highlight: string) -> nil`
+
+Sets border highlight.
+
+**Parameters**
+
+| Name | Type | Description |
+| ----------- | -------- | -------------------- |
+| `highlight` | `string` | highlight group name |
+
+**Examples**
+
+```lua
+popup.border:set_highlight("SpecialChar")
+```
+
+---
+
+### `popup.border:set_style`
+
+_Signature:_ `popup.border:set_style(style: string|table) -> nil`
+
+Sets border style.
+
+**Parameters**
+
+| Name | Type | Description |
+| ------- | ------------------ | ------------ |
+| `style` | `string` / `table` | border style |
+
+This `style` parameter is exactly the same as popup option `border.style`.
+
+You'll need to call `popup:update_layout()` after this for the change to render on screen.
+
+**Examples**
+
+```lua
+popup.border:set_style("rounded")
+popup:update_layout()
+```
+
+---
+
+### `popup.border:set_text`
+
+_Signature:_ `popup.border:set_text(edge, text, align)`
+
+Sets border text.
+
+**Parameters**
+
+| Name | Type |
+| ------- | ------------------------------------------- |
+| `edge` | `"top"` / `"bottom"` / `"left"` / `"right"` |
+| `text` | `string` |
+| `align` | `"left"` / `"right"`/ `"center"` |
+
+**Examples**
+
+```lua
+popup.border:set_text("bottom", "[Progress: 42%]", "right")
+```
+
+## Wiki Page
+
+You can find additional documentation/examples/guides/tips-n-tricks in [nui.popup wiki page](https://github.com/MunifTanjim/nui.nvim/wiki/nui.popup).
+
+
\ No newline at end of file
diff --git a/nvim/lazy/readme/doc/nui.nvim-lua-nui-split.md b/nvim/lazy/readme/doc/nui.nvim-lua-nui-split.md
new file mode 100644
index 0000000..a60604f
--- /dev/null
+++ b/nvim/lazy/readme/doc/nui.nvim-lua-nui-split.md
@@ -0,0 +1,93 @@
+# Split
+
+Split is can be used to split your current window or editor.
+
+```lua
+local Split = require("nui.split")
+
+local split = Split({
+ relative = "editor",
+ position = "bottom",
+ size = "20%",
+})
+```
+
+You can manipulate the associated buffer and window using the
+`split.bufnr` and `split.winid` properties.
+
+## Options
+
+### `ns_id`
+
+**Type:** `number` or `string`
+
+Namespace id (`number`) or name (`string`).
+
+### `relative`
+
+**Type:** `string` or `table`
+
+This option affects how `size` is calculated.
+
+**Examples**
+
+Split current editor screen:
+
+```lua
+relative = "editor"
+```
+
+Split current window (_default_):
+
+```lua
+relative = "win"
+```
+
+Split window with specific id:
+
+```lua
+relative = {
+ type = "win",
+ winid = 42,
+}
+```
+
+### `position`
+
+`position` can be one of: `"top"`, `"right"`, `"bottom"` or `"left"`.
+
+### `size`
+
+`size` can be `number` or `percentage string`.
+
+For `percentage string`, size is calculated according to the option `relative`.
+
+### `enter`
+
+**Type:** `boolean`
+
+If `false`, the split is not entered immediately after mount.
+
+**Examples**
+
+```lua
+enter = false
+```
+
+### `buf_options`
+
+Table containing buffer options to set for this split.
+
+### `win_options`
+
+Table containing window options to set for this split.
+
+## Methods
+
+[Methods from `nui.popup`](/lua/nui/popup#methods) are also available for `nui.split`.
+
+## Wiki Page
+
+You can find additional documentation/examples/guides/tips-n-tricks in [nui.split wiki page](https://github.com/MunifTanjim/nui.nvim/wiki/nui.split).
+
+
\ No newline at end of file
diff --git a/nvim/lazy/readme/doc/nui.nvim-lua-nui-table.md b/nvim/lazy/readme/doc/nui.nvim-lua-nui-table.md
new file mode 100644
index 0000000..12a731f
--- /dev/null
+++ b/nvim/lazy/readme/doc/nui.nvim-lua-nui-table.md
@@ -0,0 +1,117 @@
+# NuiTable
+
+NuiTable can render table-like structured content on the buffer.
+
+**Examples**
+
+```lua
+local NuiTable = require("nui.table")
+
+local tbl = NuiTable({
+ bufnr = bufnr,
+ columns = {
+ {
+ align = "center",
+ header = "Name",
+ columns = {
+ { accessor_key = "firstName", header = "First" },
+ {
+ id = "lastName",
+ accessor_fn = function(row)
+ return row.lastName
+ end,
+ header = "Last",
+ },
+ },
+ },
+ {
+ align = "right",
+ accessor_key = "age",
+ cell = function(cell)
+ return Text(tostring(cell.get_value()), "DiagnosticInfo")
+ end,
+ header = "Age",
+ },
+ },
+ data = {
+ { firstName = "John", lastName = "Doe", age = 42 },
+ { firstName = "Jane", lastName = "Doe", age = 27 },
+ },
+})
+
+tbl:render()
+```
+
+## Options
+
+### `bufnr`
+
+**Type:** `number`
+
+Id of the buffer where the table will be rendered.
+
+---
+
+### `ns_id`
+
+**Type:** `number` or `string`
+
+Namespace id (`number`) or name (`string`).
+
+---
+
+### `columns`
+
+**Type:** `NuiTable.ColumnDef[]`
+
+List of `NuiTable.ColumnDef` objects.
+
+---
+
+### `data`
+
+**Type:** `any[]`
+
+List of data items.
+
+## Methods
+
+### `tbl:get_cell`
+
+_Signature:_ `tbl:get_cell(position?: {integer, integer}) -> NuiTable.Cell | nil`
+
+**Parameters**
+
+| Name | Type | Description |
+| ---------- | ---------------------- | ------------------------------------- |
+| `position` | `{ integer, integer }` | `(row, col)` tuple relative to cursor |
+
+Returns the `NuiTable.Cell` if found.
+
+### `tbl:refresh_cell`
+
+_Signature:_ `tbl:refresh_cell(cell: NuiTable.Cell) -> nil`
+
+Refreshes the `cell` on buffer.
+
+**Parameters**
+
+| Name | Type | Description |
+| ------ | --------------- | ----------- |
+| `cell` | `NuiTable.Cell` | cell |
+
+### `tbl:render`
+
+_Signature:_ `tbl:render(linenr_start?: integer) -> nil`
+
+Renders the table on buffer.
+
+| Name | Type | Description |
+| -------------- | ----------------- | ----------------------------- |
+| `linenr_start` | `integer` / `nil` | start line number (1-indexed) |
+
+## Wiki Page
+
+You can find additional documentation/examples/guides/tips-n-tricks in [nui.table wiki page](https://github.com/MunifTanjim/nui.nvim/wiki/nui.table).
+
+
\ No newline at end of file
diff --git a/nvim/lazy/readme/doc/nui.nvim-lua-nui-text.md b/nvim/lazy/readme/doc/nui.nvim-lua-nui-text.md
new file mode 100644
index 0000000..324e4bd
--- /dev/null
+++ b/nvim/lazy/readme/doc/nui.nvim-lua-nui-text.md
@@ -0,0 +1,143 @@
+# NuiText
+
+NuiText is an abstraction layer on top of the following native functions:
+
+- `vim.api.nvim_buf_set_text` (check `:h nvim_buf_set_text()`)
+- `vim.api.nvim_buf_set_extmark` (check `:h nvim_buf_set_extmark()`)
+
+It helps you set text and add highlight for it on the buffer.
+
+_Signature:_ `NuiText(content, extmark?)`
+
+**Examples**
+
+```lua
+local NuiText = require("nui.text")
+
+local text = NuiText("Something Went Wrong!", "Error")
+
+local bufnr, ns_id, linenr_start, byte_start = 0, -1, 1, 0
+
+text:render(bufnr, ns_id, linenr_start, byte_start)
+```
+
+## Parameters
+
+### `content`
+
+**Type:** `string` or `table`
+
+Text content or `NuiText` object.
+
+If `NuiText` object is passed, a copy of it is created.
+
+### `extmark`
+
+**Type:** `string` or `table`
+
+Highlight group name or extmark options.
+
+If a `string` is passed, it is used as the highlight group name.
+
+If a `table` is passed it is used as extmark data. It can have the
+following keys:
+
+| Key | Description |
+| ------------ | -------------------- |
+| `"hl_group"` | highlight group name |
+
+For more, check `:help nvim_buf_set_extmark()`.
+
+## Methods
+
+### `text:set`
+
+_Signature:_ `text:set(content, extmark?)`
+
+Sets the text content and highlight information.
+
+**Parameters**
+
+| Name | Type | Description |
+| --------- | ------------------- | --------------------------------------- |
+| `content` | `string` | text content |
+| `extmark` | `string` or `table` | highlight group name or extmark options |
+
+This `extmark` parameter is exactly the same as `NuiText`'s `extmark` parameter.
+
+### `text:content`
+
+_Signature:_ `text:content()`
+
+Returns the text content.
+
+### `text:length`
+
+_Signature:_ `text:length()`
+
+Returns the byte length of the text.
+
+### `text:width`
+
+_Signature:_ `text:width()`
+
+Returns the character length of the text.
+
+### `text:highlight`
+
+_Signature:_ `text:highlight(bufnr, ns_id, linenr, byte_start)`
+
+Applies highlight for the text.
+
+**Parameters**
+
+| Name | Type | Description |
+| ------------ | -------- | -------------------------------------------------- |
+| `bufnr` | `number` | buffer number |
+| `ns_id` | `number` | namespace id (use `-1` for fallback namespace) |
+| `linenr` | `number` | line number (1-indexed) |
+| `byte_start` | `number` | start position of the text on the line (0-indexed) |
+
+### `text:render`
+
+_Signature:_ `text:render(bufnr, ns_id, linenr_start, byte_start, linenr_end?, byte_end?)`
+
+Sets the text on buffer and applies highlight.
+
+**Parameters**
+
+| Name | Type | Description |
+| -------------- | -------- | -------------------------------------------------- |
+| `bufnr` | `number` | buffer number |
+| `ns_id` | `number` | namespace id (use `-1` for fallback namespace) |
+| `linenr_start` | `number` | start line number (1-indexed) |
+| `byte_start` | `number` | start position of the text on the line (0-indexed) |
+| `linenr_end` | `number` | end line number (1-indexed) |
+| `byte_end` | `number` | end position of the text on the line (0-indexed) |
+
+### `text:render_char`
+
+_Signature:_ `text:render_char(bufnr, ns_id, linenr_start, char_start, linenr_end?, char_end?)`
+
+Sets the text on buffer and applies highlight.
+
+This does the thing as `text:render` method, but you can use character count
+instead of byte count. It will convert multibyte character count to appropriate
+byte count for you.
+
+**Parameters**
+
+| Name | Type | Description |
+| -------------- | -------- | -------------------------------------------------- |
+| `bufnr` | `number` | buffer number |
+| `ns_id` | `number` | namespace id (use `-1` for fallback namespace) |
+| `linenr_start` | `number` | start line number (1-indexed) |
+| `char_start` | `number` | start position of the text on the line (0-indexed) |
+| `linenr_end` | `number` | end line number (1-indexed) |
+| `char_end` | `number` | end position of the text on the line (0-indexed) |
+
+## Wiki Page
+
+You can find additional documentation/examples/guides/tips-n-tricks in [nui.text wiki page](https://github.com/MunifTanjim/nui.nvim/wiki/nui.text).
+
+
\ No newline at end of file
diff --git a/nvim/lazy/readme/doc/nui.nvim-lua-nui-tree.md b/nvim/lazy/readme/doc/nui.nvim-lua-nui-tree.md
new file mode 100644
index 0000000..757dd26
--- /dev/null
+++ b/nvim/lazy/readme/doc/nui.nvim-lua-nui-tree.md
@@ -0,0 +1,310 @@
+# NuiTree
+
+NuiTree can render tree-like structured content on the buffer.
+
+**Examples**
+
+```lua
+local NuiTree = require("nui.tree")
+
+local tree = NuiTree({
+ bufnr = bufnr,
+ nodes = {
+ NuiTree.Node({ text = "a" }),
+ NuiTree.Node({ text = "b" }, {
+ NuiTree.Node({ text = "b-1" }),
+ NuiTree.Node({ text = { "b-2", "b-3" } }),
+ }),
+ },
+})
+
+tree:render()
+```
+
+## Options
+
+### `bufnr`
+
+**Type:** `number`
+
+Id of the buffer where the tree will be rendered.
+
+---
+
+### `ns_id`
+
+**Type:** `number` or `string`
+
+Namespace id (`number`) or name (`string`).
+
+---
+
+### `nodes`
+
+**Type:** `table`
+
+List of [`NuiTree.Node`](#nuitreenode) objects.
+
+---
+
+### `get_node_id`
+
+**Type:** `function`
+
+_Signature:_ `get_node_id(node) -> string`
+
+If provided, this function is used for generating node's id.
+
+The return value should be a unique `string`.
+
+**Example**
+
+```lua
+get_node_id = function(node)
+ if node.id then
+ return "-" .. node.id
+ end
+
+ if node.text then
+ return string.format("%s-%s-%s", node:get_parent_id() or "", node:get_depth(), node.text)
+ end
+
+ return "-" .. math.random()
+end,
+```
+
+---
+
+### `prepare_node`
+
+**Type:** `function`
+
+_Signature:_ `prepare_node(node, parent_node?) -> nil | string | string[] | NuiLine | NuiLine[]`
+
+If provided, this function is used for preparing each node line.
+
+The return value should be a `NuiLine` object or `string` or a list containing either of them.
+
+If return value is `nil`, that node will not be rendered.
+
+**Example**
+
+```lua
+prepare_node = function(node)
+ local line = NuiLine()
+
+ line:append(string.rep(" ", node:get_depth() - 1))
+
+ if node:has_children() then
+ line:append(node:is_expanded() and " " or "ï‘ ")
+ else
+ line:append(" ")
+ end
+
+ line:append(node.text)
+
+ return line
+end,
+```
+
+---
+
+### `buf_options`
+
+**Type:** `table`
+
+Contains all buffer related options (check `:h options | /local to buffer`).
+
+**Examples**
+
+```lua
+buf_options = {
+ bufhidden = "hide",
+ buflisted = false,
+ buftype = "nofile",
+ swapfile = false,
+},
+```
+
+## Methods
+
+### `tree:get_node`
+
+_Signature:_ `tree:get_node(node_id_or_linenr?) -> NuiTreeNode | nil, number | nil, number | nil`
+
+**Parameters**
+
+| Name | Type | Description |
+| ------------------- | ----------------------------- | ------------------------ |
+| `node_id_or_linenr` | `number` or `string` or `nil` | node's id or line number |
+
+If `node_id_or_linenr` is `string`, the node with that _id_ is returned.
+
+If `node_id_or_linenr` is `number`, the node on that _linenr_ is returned.
+
+If `node_id` is `nil`, the current node under cursor is returned.
+
+Returns the `node` if found, and the start and end `linenr` if it is rendered.
+
+### `tree:get_nodes`
+
+_Signature:_ `tree:get_node(parent_id?) -> NuiTreeNode[]`
+
+**Parameters**
+
+| Name | Type | Description |
+| ----------- | ----------------- | ---------------- |
+| `parent_id` | `string` or `nil` | parent node's id |
+
+If `parent_id` is present, child nodes under that parent are returned,
+Otherwise root nodes are returned.
+
+### `tree:add_node`
+
+_Signature:_ `tree:add_node(node, parent_id?)`
+
+Adds a node to the tree.
+
+| Name | Type | Description |
+| ----------- | ----------------- | ---------------- |
+| `node` | `NuiTree.Node` | node |
+| `parent_id` | `string` or `nil` | parent node's id |
+
+If `parent_id` is present, node is added under that parent,
+Otherwise node is added to the tree root.
+
+### `tree:remove_node`
+
+_Signature:_ `tree:remove_node(node)`
+
+Removes a node from the tree.
+
+Returns the removed node.
+
+| Name | Type | Description |
+| --------- | -------- | ----------- |
+| `node_id` | `string` | node's id |
+
+### `tree:set_nodes`
+
+_Signature:_ `tree:set_nodes(nodes, parent_id?)`
+
+Adds a node to the tree.
+
+| Name | Type | Description |
+| ----------- | ----------------- | ---------------- |
+| `nodes` | `NuiTree.Node[]` | list of nodes |
+| `parent_id` | `string` or `nil` | parent node's id |
+
+If `parent_id` is present, nodes are set as parent node's children,
+otherwise nodes are set at tree root.
+
+### `tree:render`
+
+_Signature:_ `tree:render(linenr_start?)`
+
+Renders the tree on buffer.
+
+| Name | Type | Description |
+| -------------- | ---------------- | ----------------------------- |
+| `linenr_start` | `number` / `nil` | start line number (1-indexed) |
+
+## NuiTree.Node
+
+`NuiTree.Node` is used to create a node object for `NuiTree`.
+
+_Signature:_ `NuiTree.Node(data, children)`
+
+**Examples**
+
+```lua
+local NuiTree = require("nui.tree")
+
+local node = NuiTree.Node({ text = "b" }, {
+ NuiTree.Node({ text = "b-1" }),
+ NuiTree.Node({ text = "b-2" }),
+})
+```
+
+### Parameters
+
+#### `data`
+
+**Type:** `table`
+
+Data for the node. Can contain anything. The default `get_node_id`
+and `prepare_node` functions uses the `id` and `text` keys.
+
+**Example**
+
+```lua
+{
+ id = "/usr/local/bin/lua",
+ text = "lua"
+}
+```
+
+If you don't want to provide those two values, you should consider
+providing your own `get_node_id` and `prepare_node` functions.
+
+#### `children`
+
+**Type:** `table`
+
+List of `NuiTree.Node` objects.
+
+### Methods
+
+#### `node:get_id`
+
+_Signature:_ `node:get_id()`
+
+Returns node's id.
+
+#### `node:get_depth`
+
+_Signature:_ `node:get_depth()`
+
+Returns node's depth.
+
+#### `node:get_parent_id`
+
+_Signature:_ `node:get_parent_id()`
+
+Returns parent node's id.
+
+#### `node:has_children`
+
+_Signature:_ `node:has_children()`
+
+Checks if node has children.
+
+#### `node:get_child_ids`
+
+_Signature:_ `node:get_child_ids() -> string[]`
+
+Returns ids of child nodes.
+
+#### `node:is_expanded`
+
+_Signature:_ `node:is_expanded()`
+
+Checks if node is expanded.
+
+#### `node:expand`
+
+_Signature:_ `node:expand()`
+
+Expands node.
+
+#### `node:collapse`
+
+_Signature:_ `node:collapse()`
+
+Collapses node.
+
+## Wiki Page
+
+You can find additional documentation/examples/guides/tips-n-tricks in [nui.tree wiki page](https://github.com/MunifTanjim/nui.nvim/wiki/nui.tree).
+
+
\ No newline at end of file
diff --git a/nvim/lazy/readme/doc/nui.nvim.md b/nvim/lazy/readme/doc/nui.nvim.md
new file mode 100644
index 0000000..a422143
--- /dev/null
+++ b/nvim/lazy/readme/doc/nui.nvim.md
@@ -0,0 +1,355 @@
+
+[](https://codecov.io/gh/MunifTanjim/nui.nvim)
+[](https://luarocks.org/modules/MunifTanjim/nui.nvim)
+
+
+# nui.nvim
+
+UI Component Library for Neovim.
+
+## Requirements
+
+- [Neovim 0.5.0](https://github.com/neovim/neovim/releases/tag/v0.5.0)
+
+## Installation
+
+Install the plugins with your preferred plugin manager. For example, with [`vim-plug`](https://github.com/junegunn/vim-plug):
+
+```vim
+Plug 'MunifTanjim/nui.nvim'
+```
+
+## Blocks
+
+### [NuiText](lua/nui/text)
+
+Quickly add highlighted text on the buffer.
+
+**[Check Detailed Documentation for `nui.text`](lua/nui/text)**
+
+**[Check Wiki Page for `nui.text`](https://github.com/MunifTanjim/nui.nvim/wiki/nui.text)**
+
+### [NuiLine](lua/nui/line)
+
+Quickly add line containing highlighted text chunks on the buffer.
+
+**[Check Detailed Documentation for `nui.line`](lua/nui/line)**
+
+**[Check Wiki Page for `nui.line`](https://github.com/MunifTanjim/nui.nvim/wiki/nui.line)**
+
+### [NuiTable](lua/nui/table)
+
+Quickly render table-like structured content on the buffer.
+
+**[Check Detailed Documentation for `nui.table`](lua/nui/table)**
+
+**[Check Wiki Page for `nui.table`](https://github.com/MunifTanjim/nui.nvim/wiki/nui.table)**
+
+### [NuiTree](lua/nui/tree)
+
+Quickly render tree-like structured content on the buffer.
+
+**[Check Detailed Documentation for `nui.tree`](lua/nui/tree)**
+
+**[Check Wiki Page for `nui.tree`](https://github.com/MunifTanjim/nui.nvim/wiki/nui.tree)**
+
+## Components
+
+### [Layout](lua/nui/layout)
+
+
+
+```lua
+local Popup = require("nui.popup")
+local Layout = require("nui.layout")
+
+local popup_one, popup_two = Popup({
+ enter = true,
+ border = "single",
+}), Popup({
+ border = "double",
+})
+
+local layout = Layout(
+ {
+ position = "50%",
+ size = {
+ width = 80,
+ height = "60%",
+ },
+ },
+ Layout.Box({
+ Layout.Box(popup_one, { size = "40%" }),
+ Layout.Box(popup_two, { size = "60%" }),
+ }, { dir = "row" })
+)
+
+local current_dir = "row"
+
+popup_one:map("n", "r", function()
+ if current_dir == "col" then
+ layout:update(Layout.Box({
+ Layout.Box(popup_one, { size = "40%" }),
+ Layout.Box(popup_two, { size = "60%" }),
+ }, { dir = "row" }))
+
+ current_dir = "row"
+ else
+ layout:update(Layout.Box({
+ Layout.Box(popup_two, { size = "60%" }),
+ Layout.Box(popup_one, { size = "40%" }),
+ }, { dir = "col" }))
+
+ current_dir = "col"
+ end
+end, {})
+
+layout:mount()
+```
+
+**[Check Detailed Documentation for `nui.layout`](lua/nui/layout)**
+
+**[Check Wiki Page for `nui.layout`](https://github.com/MunifTanjim/nui.nvim/wiki/nui.layout)**
+
+### [Popup](lua/nui/popup)
+
+
+
+```lua
+local Popup = require("nui.popup")
+local event = require("nui.utils.autocmd").event
+
+local popup = Popup({
+ enter = true,
+ focusable = true,
+ border = {
+ style = "rounded",
+ },
+ position = "50%",
+ size = {
+ width = "80%",
+ height = "60%",
+ },
+})
+
+-- mount/open the component
+popup:mount()
+
+-- unmount component when cursor leaves buffer
+popup:on(event.BufLeave, function()
+ popup:unmount()
+end)
+
+-- set content
+vim.api.nvim_buf_set_lines(popup.bufnr, 0, 1, false, { "Hello World" })
+```
+
+**[Check Detailed Documentation for `nui.popup`](lua/nui/popup)**
+
+**[Check Wiki Page for `nui.popup`](https://github.com/MunifTanjim/nui.nvim/wiki/nui.popup)**
+
+### [Input](lua/nui/input)
+
+
+
+```lua
+local Input = require("nui.input")
+local event = require("nui.utils.autocmd").event
+
+local input = Input({
+ position = "50%",
+ size = {
+ width = 20,
+ },
+ border = {
+ style = "single",
+ text = {
+ top = "[Howdy?]",
+ top_align = "center",
+ },
+ },
+ win_options = {
+ winhighlight = "Normal:Normal,FloatBorder:Normal",
+ },
+}, {
+ prompt = "> ",
+ default_value = "Hello",
+ on_close = function()
+ print("Input Closed!")
+ end,
+ on_submit = function(value)
+ print("Input Submitted: " .. value)
+ end,
+})
+
+-- mount/open the component
+input:mount()
+
+-- unmount component when cursor leaves buffer
+input:on(event.BufLeave, function()
+ input:unmount()
+end)
+```
+
+**[Check Detailed Documentation for `nui.input`](lua/nui/input)**
+
+**[Check Wiki Page for `nui.input`](https://github.com/MunifTanjim/nui.nvim/wiki/nui.input)**
+
+### [Menu](lua/nui/menu)
+
+
+
+```lua
+local Menu = require("nui.menu")
+local event = require("nui.utils.autocmd").event
+
+local menu = Menu({
+ position = "50%",
+ size = {
+ width = 25,
+ height = 5,
+ },
+ border = {
+ style = "single",
+ text = {
+ top = "[Choose-an-Element]",
+ top_align = "center",
+ },
+ },
+ win_options = {
+ winhighlight = "Normal:Normal,FloatBorder:Normal",
+ },
+}, {
+ lines = {
+ Menu.item("Hydrogen (H)"),
+ Menu.item("Carbon (C)"),
+ Menu.item("Nitrogen (N)"),
+ Menu.separator("Noble-Gases", {
+ char = "-",
+ text_align = "right",
+ }),
+ Menu.item("Helium (He)"),
+ Menu.item("Neon (Ne)"),
+ Menu.item("Argon (Ar)"),
+ },
+ max_width = 20,
+ keymap = {
+ focus_next = { "j", "", "" },
+ focus_prev = { "k", "", "" },
+ close = { "", "" },
+ submit = { "", "" },
+ },
+ on_close = function()
+ print("Menu Closed!")
+ end,
+ on_submit = function(item)
+ print("Menu Submitted: ", item.text)
+ end,
+})
+
+-- mount the component
+menu:mount()
+```
+
+**[Check Detailed Documentation for `nui.menu`](lua/nui/menu)**
+
+**[Check Wiki Page for `nui.menu`](https://github.com/MunifTanjim/nui.nvim/wiki/nui.menu)**
+
+### [Split](lua/nui/split)
+
+
+
+```lua
+local Split = require("nui.split")
+local event = require("nui.utils.autocmd").event
+
+local split = Split({
+ relative = "editor",
+ position = "bottom",
+ size = "20%",
+})
+
+-- mount/open the component
+split:mount()
+
+-- unmount component when cursor leaves buffer
+split:on(event.BufLeave, function()
+ split:unmount()
+end)
+```
+
+**[Check Detailed Documentation for `nui.split`](lua/nui/split)**
+
+**[Check Wiki Page for `nui.split`](https://github.com/MunifTanjim/nui.nvim/wiki/nui.split)**
+
+## Extendibility
+
+Each of the [blocks](#blocks) and [components](#components) can be extended to add new
+methods or change their behaviors.
+
+```lua
+local Timer = Popup:extend("Timer")
+
+function Timer:init(popup_options)
+ local options = vim.tbl_deep_extend("force", popup_options or {}, {
+ border = "double",
+ focusable = false,
+ position = { row = 0, col = "100%" },
+ size = { width = 10, height = 1 },
+ win_options = {
+ winhighlight = "Normal:Normal,FloatBorder:SpecialChar",
+ },
+ })
+
+ Timer.super.init(self, options)
+end
+
+function Timer:countdown(time, step, format)
+ local function draw_content(text)
+ local gap_width = 10 - vim.api.nvim_strwidth(text)
+ vim.api.nvim_buf_set_lines(self.bufnr, 0, -1, false, {
+ string.format(
+ "%s%s%s",
+ string.rep(" ", math.floor(gap_width / 2)),
+ text,
+ string.rep(" ", math.ceil(gap_width / 2))
+ ),
+ })
+ end
+
+ self:mount()
+
+ local remaining_time = time
+
+ draw_content(format(remaining_time))
+
+ vim.fn.timer_start(step, function()
+ remaining_time = remaining_time - step
+
+ draw_content(format(remaining_time))
+
+ if remaining_time <= 0 then
+ self:unmount()
+ end
+ end, { ["repeat"] = math.ceil(remaining_time / step) })
+end
+
+local timer = Timer()
+
+timer:countdown(10000, 1000, function(time)
+ return tostring(time / 1000) .. "s"
+end)
+```
+
+#### `nui.object`
+
+A small object library is bundled with `nui.nvim`. It is, more or less, a clone of the
+[`kikito/middleclass`](https://github.com/kikito/middleclass) library.
+
+[Check Wiki Page for `nui.object`](https://github.com/MunifTanjim/nui.nvim/wiki/nui.object)
+
+## License
+
+Licensed under the MIT License. Check the [LICENSE](./LICENSE) file for details.
+
+
\ No newline at end of file
diff --git a/nvim/lazy/readme/doc/nvim-ts-autotag.md b/nvim/lazy/readme/doc/nvim-ts-autotag.md
new file mode 100644
index 0000000..b668b41
--- /dev/null
+++ b/nvim/lazy/readme/doc/nvim-ts-autotag.md
@@ -0,0 +1,136 @@
+# nvim-ts-autotag
+
+Use treesitter to **autoclose** and **autorename** html tag
+
+It works with:
+
+- astro
+- glimmer
+- handlebars
+- html
+- javascript
+- jsx
+- liquid
+- markdown
+- php
+- rescript
+- svelte
+- tsx
+- twig
+- typescript
+- vue
+- xml
+
+and more
+
+## Usage
+
+```text
+Before Input After
+------------------------------------
+
+
ciwspan
+------------------------------------
+```
+
+## Setup
+
+Requires `Nvim 0.9.5` and up.
+
+Note that `nvim-ts-autotag` will not work unless you have treesitter parsers (like `html`) installed for a given
+filetype. See [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) for installing parsers.
+
+```lua
+require('nvim-ts-autotag').setup({
+ opts = {
+ -- Defaults
+ enable_close = true, -- Auto close tags
+ enable_rename = true, -- Auto rename pairs of tags
+ enable_close_on_slash = false -- Auto close on trailing
+ },
+ -- Also override individual filetype configs, these take priority.
+ -- Empty by default, useful if one of the "opts" global settings
+ -- doesn't work well in a specific filetype
+ per_filetype = {
+ ["html"] = {
+ enable_close = false
+ }
+ }
+})
+```
+
+> [!CAUTION]
+> If you are setting up via `nvim-treesitter.configs` it has been deprecated! Please migrate to the
+> new way. It will be removed in `1.0.0`.
+
+### A note on lazy loading
+
+For those of you using lazy loading through a plugin manager (like [lazy.nvim](https://github.com/folke/lazy.nvim)) lazy
+loading is not particularly necessary for this plugin. `nvim-ts-autotag` is efficient in choosing when it needs to load.
+If you still insist on lazy loading `nvim-ts-autotag`, then two good events to use are `BufReadPre` & `BufNewFile`.
+
+### Extending the default config
+
+Let's say that there's a language that `nvim-ts-autotag` doesn't currently support and you'd like to support it in your
+config. While it would be the preference of the author that you upstream your changes, perhaps you would rather not 😢.
+
+For example, if you have a language that has a very similar layout in its Treesitter Queries as `html`, you could add an
+alias like so:
+
+```lua
+require('nvim-ts-autotag').setup({
+ aliases = {
+ ["your language here"] = "html",
+ }
+})
+
+-- or
+local TagConfigs = require("nvim-ts-autotag.config.init")
+TagConfigs:add_alias("your language here", "html")
+```
+
+That will make `nvim-ts-autotag` close tags according to the rules of the `html` config in the given language.
+
+But what if a parser breaks for whatever reason, for example the upstream Treesitter tree changes its node names and now
+the default queries that `nvim-ts-autotag` provides no longer work.
+
+Fear not! You can directly extend and override the existing configs. For example, let's say the start and end tag
+patterns have changed for `xml`. We can directly override the `xml` config:
+
+```lua
+local TagConfigs = require("nvim-ts-autotag.config.init")
+TagConfigs:update(TagConfigs:get("xml"):override("xml", {
+ start_tag_pattern = { "STag" },
+ end_tag_pattern = { "ETag" },
+}))
+```
+
+In fact, this very nearly what we do during our own internal initialization phase for `nvim-ts-autotag`.
+
+### Enable update on insert
+
+If you have that issue
+[#19](https://github.com/windwp/nvim-ts-autotag/issues/19)
+
+```lua
+vim.lsp.handlers['textDocument/publishDiagnostics'] = vim.lsp.with(
+ vim.lsp.diagnostic.on_publish_diagnostics,
+ {
+ underline = true,
+ virtual_text = {
+ spacing = 5,
+ severity_limit = 'Warning',
+ },
+ update_in_insert = true,
+ }
+)
+```
+## Contributors
+Thank [@PriceHiller](https://github.com/PriceHiller) for his work on this plugin.
+
+## Sponsor
+If you find this plugin useful, please consider sponsoring the project.
+
+[Sponsor](https://paypal.me/trieule1vn)
+
+
\ No newline at end of file
diff --git a/nvim/lazy/readme/doc/tags b/nvim/lazy/readme/doc/tags
new file mode 100644
index 0000000..ba1d39d
--- /dev/null
+++ b/nvim/lazy/readme/doc/tags
@@ -0,0 +1,200 @@
+!_TAG_FILE_ENCODING utf-8 //
+friendly-snippets-add-snippets-from-a-framework-to-a-filetype friendly-snippets.md /## Add snippets from a framework to a filetype.
+friendly-snippets-credits friendly-snippets.md /## Credits
+friendly-snippets-excluding-snippets friendly-snippets.md /## Excluding snippets
+friendly-snippets-friendly-snippets friendly-snippets.md /# Friendly Snippets
+friendly-snippets-html friendly-snippets.md /### HTML
+friendly-snippets-install friendly-snippets.md /## Install
+friendly-snippets-js friendly-snippets.md /### JS
+friendly-snippets-showcase friendly-snippets.md /## Showcase
+friendly-snippets-thanks-to-all-contributors friendly-snippets.md /## Thanks to all contributors
+friendly-snippets-todo friendly-snippets.md /## TODO
+friendly-snippets-usage friendly-snippets.md /## Usage
+friendly-snippets-with-coc-nvim friendly-snippets.md /### With coc.nvim
+friendly-snippets-with-lazy-nvim friendly-snippets.md /### With Lazy.nvim
+friendly-snippets-with-packer friendly-snippets.md /### With Packer
+friendly-snippets-with-vim-plug friendly-snippets.md /### With vim-plug
+nui.nvim-blocks nui.nvim.md /## Blocks
+nui.nvim-components nui.nvim.md /## Components
+nui.nvim-extendibility nui.nvim.md /## Extendibility
+nui.nvim-input-lua-nui-input nui.nvim.md /### \[Input\](lua\/nui\/input)
+nui.nvim-installation nui.nvim.md /## Installation
+nui.nvim-layout-lua-nui-layout nui.nvim.md /### \[Layout\](lua\/nui\/layout)
+nui.nvim-license nui.nvim.md /## License
+nui.nvim-lua-nui-input-default-value nui.nvim-lua-nui-input.md /### `default_value`
+nui.nvim-lua-nui-input-disable-cursor-position-patch nui.nvim-lua-nui-input.md /### `disable_cursor_position_patch`
+nui.nvim-lua-nui-input-input nui.nvim-lua-nui-input.md /# Input
+nui.nvim-lua-nui-input-methods nui.nvim-lua-nui-input.md /## Methods
+nui.nvim-lua-nui-input-on-change nui.nvim-lua-nui-input.md /### `on_change`
+nui.nvim-lua-nui-input-on-close nui.nvim-lua-nui-input.md /### `on_close`
+nui.nvim-lua-nui-input-on-submit nui.nvim-lua-nui-input.md /### `on_submit`
+nui.nvim-lua-nui-input-options nui.nvim-lua-nui-input.md /## Options
+nui.nvim-lua-nui-input-prompt nui.nvim-lua-nui-input.md /### `prompt`
+nui.nvim-lua-nui-input-wiki-page nui.nvim-lua-nui-input.md /## Wiki Page
+nui.nvim-lua-nui-layout-anchor nui.nvim-lua-nui-layout.md /### `anchor`
+nui.nvim-lua-nui-layout-layout nui.nvim-lua-nui-layout.md /# Layout
+nui.nvim-lua-nui-layout-layout-box nui.nvim-lua-nui-layout.md /## Layout.Box
+nui.nvim-lua-nui-layout-layout-hide nui.nvim-lua-nui-layout.md /### `layout:hide`
+nui.nvim-lua-nui-layout-layout-mount nui.nvim-lua-nui-layout.md /### `layout:mount`
+nui.nvim-lua-nui-layout-layout-show nui.nvim-lua-nui-layout.md /### `layout:show`
+nui.nvim-lua-nui-layout-layout-unmount nui.nvim-lua-nui-layout.md /### `layout:unmount`
+nui.nvim-lua-nui-layout-layout-update nui.nvim-lua-nui-layout.md /### `layout:update`
+nui.nvim-lua-nui-layout-methods nui.nvim-lua-nui-layout.md /## Methods
+nui.nvim-lua-nui-layout-options-for-float-layout nui.nvim-lua-nui-layout.md /## Options (for float layout)
+nui.nvim-lua-nui-layout-options-for-split-layout nui.nvim-lua-nui-layout.md /## Options (for split layout)
+nui.nvim-lua-nui-layout-position nui.nvim-lua-nui-layout.md /### `position`
+nui.nvim-lua-nui-layout-relative nui.nvim-lua-nui-layout.md /### `relative`
+nui.nvim-lua-nui-layout-size nui.nvim-lua-nui-layout.md /### `size`
+nui.nvim-lua-nui-layout-wiki-page nui.nvim-lua-nui-layout.md /## Wiki Page
+nui.nvim-lua-nui-line-line-append nui.nvim-lua-nui-line.md /### `line:append`
+nui.nvim-lua-nui-line-line-content nui.nvim-lua-nui-line.md /### `line:content`
+nui.nvim-lua-nui-line-line-highlight nui.nvim-lua-nui-line.md /### `line:highlight`
+nui.nvim-lua-nui-line-line-render nui.nvim-lua-nui-line.md /### `line:render`
+nui.nvim-lua-nui-line-methods nui.nvim-lua-nui-line.md /## Methods
+nui.nvim-lua-nui-line-nuiline nui.nvim-lua-nui-line.md /# NuiLine
+nui.nvim-lua-nui-line-parameters nui.nvim-lua-nui-line.md /## Parameters
+nui.nvim-lua-nui-line-texts nui.nvim-lua-nui-line.md /### `texts`
+nui.nvim-lua-nui-line-wiki-page nui.nvim-lua-nui-line.md /## Wiki Page
+nui.nvim-lua-nui-menu-keymap nui.nvim-lua-nui-menu.md /### `keymap`
+nui.nvim-lua-nui-menu-lines nui.nvim-lua-nui-menu.md /### `lines`
+nui.nvim-lua-nui-menu-max-height nui.nvim-lua-nui-menu.md /### `max_height`
+nui.nvim-lua-nui-menu-max-width nui.nvim-lua-nui-menu.md /### `max_width`
+nui.nvim-lua-nui-menu-menu nui.nvim-lua-nui-menu.md /# Menu
+nui.nvim-lua-nui-menu-menu-tree nui.nvim-lua-nui-menu.md /### `menu.tree`
+nui.nvim-lua-nui-menu-methods nui.nvim-lua-nui-menu.md /## Methods
+nui.nvim-lua-nui-menu-min-height nui.nvim-lua-nui-menu.md /### `min_height`
+nui.nvim-lua-nui-menu-min-width nui.nvim-lua-nui-menu.md /### `min_width`
+nui.nvim-lua-nui-menu-on-change nui.nvim-lua-nui-menu.md /### `on_change`
+nui.nvim-lua-nui-menu-on-close nui.nvim-lua-nui-menu.md /### `on_close`
+nui.nvim-lua-nui-menu-on-submit nui.nvim-lua-nui-menu.md /### `on_submit`
+nui.nvim-lua-nui-menu-options nui.nvim-lua-nui-menu.md /## Options
+nui.nvim-lua-nui-menu-prepare-item nui.nvim-lua-nui-menu.md /### `prepare_item`
+nui.nvim-lua-nui-menu-properties nui.nvim-lua-nui-menu.md /## Properties
+nui.nvim-lua-nui-menu-should-skip-item nui.nvim-lua-nui-menu.md /### `should_skip_item`
+nui.nvim-lua-nui-menu-wiki-page nui.nvim-lua-nui-menu.md /## Wiki Page
+nui.nvim-lua-nui-popup-anchor nui.nvim-lua-nui-popup.md /### `anchor`
+nui.nvim-lua-nui-popup-border nui.nvim-lua-nui-popup.md /### `border`
+nui.nvim-lua-nui-popup-border-padding nui.nvim-lua-nui-popup.md /#### `border.padding`
+nui.nvim-lua-nui-popup-border-style nui.nvim-lua-nui-popup.md /#### `border.style`
+nui.nvim-lua-nui-popup-border-text nui.nvim-lua-nui-popup.md /#### `border.text`
+nui.nvim-lua-nui-popup-buf-options nui.nvim-lua-nui-popup.md /### `buf_options`
+nui.nvim-lua-nui-popup-bufnr nui.nvim-lua-nui-popup.md /### `bufnr`
+nui.nvim-lua-nui-popup-enter nui.nvim-lua-nui-popup.md /### `enter`
+nui.nvim-lua-nui-popup-focusable nui.nvim-lua-nui-popup.md /### `focusable`
+nui.nvim-lua-nui-popup-methods nui.nvim-lua-nui-popup.md /## Methods
+nui.nvim-lua-nui-popup-ns-id nui.nvim-lua-nui-popup.md /### `ns_id`
+nui.nvim-lua-nui-popup-options nui.nvim-lua-nui-popup.md /## Options
+nui.nvim-lua-nui-popup-popup nui.nvim-lua-nui-popup.md /# Popup
+nui.nvim-lua-nui-popup-popup-border-set-highlight nui.nvim-lua-nui-popup.md /### `popup.border:set_highlight`
+nui.nvim-lua-nui-popup-popup-border-set-style nui.nvim-lua-nui-popup.md /### `popup.border:set_style`
+nui.nvim-lua-nui-popup-popup-border-set-text nui.nvim-lua-nui-popup.md /### `popup.border:set_text`
+nui.nvim-lua-nui-popup-popup-hide nui.nvim-lua-nui-popup.md /### `popup:hide`
+nui.nvim-lua-nui-popup-popup-map nui.nvim-lua-nui-popup.md /### `popup:map`
+nui.nvim-lua-nui-popup-popup-mount nui.nvim-lua-nui-popup.md /### `popup:mount`
+nui.nvim-lua-nui-popup-popup-off nui.nvim-lua-nui-popup.md /### `popup:off`
+nui.nvim-lua-nui-popup-popup-on nui.nvim-lua-nui-popup.md /### `popup:on`
+nui.nvim-lua-nui-popup-popup-show nui.nvim-lua-nui-popup.md /### `popup:show`
+nui.nvim-lua-nui-popup-popup-unmap nui.nvim-lua-nui-popup.md /### `popup:unmap`
+nui.nvim-lua-nui-popup-popup-unmount nui.nvim-lua-nui-popup.md /### `popup:unmount`
+nui.nvim-lua-nui-popup-popup-update-layout nui.nvim-lua-nui-popup.md /### `popup:update_layout`
+nui.nvim-lua-nui-popup-position nui.nvim-lua-nui-popup.md /### `position`
+nui.nvim-lua-nui-popup-relative nui.nvim-lua-nui-popup.md /### `relative`
+nui.nvim-lua-nui-popup-size nui.nvim-lua-nui-popup.md /### `size`
+nui.nvim-lua-nui-popup-wiki-page nui.nvim-lua-nui-popup.md /## Wiki Page
+nui.nvim-lua-nui-popup-win-options nui.nvim-lua-nui-popup.md /### `win_options`
+nui.nvim-lua-nui-popup-zindex nui.nvim-lua-nui-popup.md /### `zindex`
+nui.nvim-lua-nui-split-buf-options nui.nvim-lua-nui-split.md /### `buf_options`
+nui.nvim-lua-nui-split-enter nui.nvim-lua-nui-split.md /### `enter`
+nui.nvim-lua-nui-split-methods nui.nvim-lua-nui-split.md /## Methods
+nui.nvim-lua-nui-split-ns-id nui.nvim-lua-nui-split.md /### `ns_id`
+nui.nvim-lua-nui-split-options nui.nvim-lua-nui-split.md /## Options
+nui.nvim-lua-nui-split-position nui.nvim-lua-nui-split.md /### `position`
+nui.nvim-lua-nui-split-relative nui.nvim-lua-nui-split.md /### `relative`
+nui.nvim-lua-nui-split-size nui.nvim-lua-nui-split.md /### `size`
+nui.nvim-lua-nui-split-split nui.nvim-lua-nui-split.md /# Split
+nui.nvim-lua-nui-split-wiki-page nui.nvim-lua-nui-split.md /## Wiki Page
+nui.nvim-lua-nui-split-win-options nui.nvim-lua-nui-split.md /### `win_options`
+nui.nvim-lua-nui-table-bufnr nui.nvim-lua-nui-table.md /### `bufnr`
+nui.nvim-lua-nui-table-columns nui.nvim-lua-nui-table.md /### `columns`
+nui.nvim-lua-nui-table-data nui.nvim-lua-nui-table.md /### `data`
+nui.nvim-lua-nui-table-methods nui.nvim-lua-nui-table.md /## Methods
+nui.nvim-lua-nui-table-ns-id nui.nvim-lua-nui-table.md /### `ns_id`
+nui.nvim-lua-nui-table-nuitable nui.nvim-lua-nui-table.md /# NuiTable
+nui.nvim-lua-nui-table-options nui.nvim-lua-nui-table.md /## Options
+nui.nvim-lua-nui-table-tbl-get-cell nui.nvim-lua-nui-table.md /### `tbl:get_cell`
+nui.nvim-lua-nui-table-tbl-refresh-cell nui.nvim-lua-nui-table.md /### `tbl:refresh_cell`
+nui.nvim-lua-nui-table-tbl-render nui.nvim-lua-nui-table.md /### `tbl:render`
+nui.nvim-lua-nui-table-wiki-page nui.nvim-lua-nui-table.md /## Wiki Page
+nui.nvim-lua-nui-text-content nui.nvim-lua-nui-text.md /### `content`
+nui.nvim-lua-nui-text-extmark nui.nvim-lua-nui-text.md /### `extmark`
+nui.nvim-lua-nui-text-methods nui.nvim-lua-nui-text.md /## Methods
+nui.nvim-lua-nui-text-nuitext nui.nvim-lua-nui-text.md /# NuiText
+nui.nvim-lua-nui-text-parameters nui.nvim-lua-nui-text.md /## Parameters
+nui.nvim-lua-nui-text-text-content nui.nvim-lua-nui-text.md /### `text:content`
+nui.nvim-lua-nui-text-text-highlight nui.nvim-lua-nui-text.md /### `text:highlight`
+nui.nvim-lua-nui-text-text-length nui.nvim-lua-nui-text.md /### `text:length`
+nui.nvim-lua-nui-text-text-render nui.nvim-lua-nui-text.md /### `text:render`
+nui.nvim-lua-nui-text-text-render-char nui.nvim-lua-nui-text.md /### `text:render_char`
+nui.nvim-lua-nui-text-text-set nui.nvim-lua-nui-text.md /### `text:set`
+nui.nvim-lua-nui-text-text-width nui.nvim-lua-nui-text.md /### `text:width`
+nui.nvim-lua-nui-text-wiki-page nui.nvim-lua-nui-text.md /## Wiki Page
+nui.nvim-lua-nui-tree-buf-options nui.nvim-lua-nui-tree.md /### `buf_options`
+nui.nvim-lua-nui-tree-bufnr nui.nvim-lua-nui-tree.md /### `bufnr`
+nui.nvim-lua-nui-tree-children nui.nvim-lua-nui-tree.md /#### `children`
+nui.nvim-lua-nui-tree-data nui.nvim-lua-nui-tree.md /#### `data`
+nui.nvim-lua-nui-tree-get-node-id nui.nvim-lua-nui-tree.md /### `get_node_id`
+nui.nvim-lua-nui-tree-methods nui.nvim-lua-nui-tree.md /### Methods
+nui.nvim-lua-nui-tree-node-collapse nui.nvim-lua-nui-tree.md /#### `node:collapse`
+nui.nvim-lua-nui-tree-node-expand nui.nvim-lua-nui-tree.md /#### `node:expand`
+nui.nvim-lua-nui-tree-node-get-child-ids nui.nvim-lua-nui-tree.md /#### `node:get_child_ids`
+nui.nvim-lua-nui-tree-node-get-depth nui.nvim-lua-nui-tree.md /#### `node:get_depth`
+nui.nvim-lua-nui-tree-node-get-id nui.nvim-lua-nui-tree.md /#### `node:get_id`
+nui.nvim-lua-nui-tree-node-get-parent-id nui.nvim-lua-nui-tree.md /#### `node:get_parent_id`
+nui.nvim-lua-nui-tree-node-has-children nui.nvim-lua-nui-tree.md /#### `node:has_children`
+nui.nvim-lua-nui-tree-node-is-expanded nui.nvim-lua-nui-tree.md /#### `node:is_expanded`
+nui.nvim-lua-nui-tree-nodes nui.nvim-lua-nui-tree.md /### `nodes`
+nui.nvim-lua-nui-tree-ns-id nui.nvim-lua-nui-tree.md /### `ns_id`
+nui.nvim-lua-nui-tree-nuitree nui.nvim-lua-nui-tree.md /# NuiTree
+nui.nvim-lua-nui-tree-nuitree-node nui.nvim-lua-nui-tree.md /## NuiTree.Node
+nui.nvim-lua-nui-tree-options nui.nvim-lua-nui-tree.md /## Options
+nui.nvim-lua-nui-tree-parameters nui.nvim-lua-nui-tree.md /### Parameters
+nui.nvim-lua-nui-tree-prepare-node nui.nvim-lua-nui-tree.md /### `prepare_node`
+nui.nvim-lua-nui-tree-tree-add-node nui.nvim-lua-nui-tree.md /### `tree:add_node`
+nui.nvim-lua-nui-tree-tree-get-node nui.nvim-lua-nui-tree.md /### `tree:get_node`
+nui.nvim-lua-nui-tree-tree-get-nodes nui.nvim-lua-nui-tree.md /### `tree:get_nodes`
+nui.nvim-lua-nui-tree-tree-remove-node nui.nvim-lua-nui-tree.md /### `tree:remove_node`
+nui.nvim-lua-nui-tree-tree-render nui.nvim-lua-nui-tree.md /### `tree:render`
+nui.nvim-lua-nui-tree-tree-set-nodes nui.nvim-lua-nui-tree.md /### `tree:set_nodes`
+nui.nvim-lua-nui-tree-wiki-page nui.nvim-lua-nui-tree.md /## Wiki Page
+nui.nvim-menu-lua-nui-menu nui.nvim.md /### \[Menu\](lua\/nui\/menu)
+nui.nvim-nui-nvim nui.nvim.md /# nui.nvim
+nui.nvim-nui-object nui.nvim.md /#### `nui.object`
+nui.nvim-nuiline-lua-nui-line nui.nvim.md /### \[NuiLine\](lua\/nui\/line)
+nui.nvim-nuitable-lua-nui-table nui.nvim.md /### \[NuiTable\](lua\/nui\/table)
+nui.nvim-nuitext-lua-nui-text nui.nvim.md /### \[NuiText\](lua\/nui\/text)
+nui.nvim-nuitree-lua-nui-tree nui.nvim.md /### \[NuiTree\](lua\/nui\/tree)
+nui.nvim-popup-lua-nui-popup nui.nvim.md /### \[Popup\](lua\/nui\/popup)
+nui.nvim-requirements nui.nvim.md /## Requirements
+nui.nvim-split-lua-nui-split nui.nvim.md /### \[Split\](lua\/nui\/split)
+nvim-ts-autotag-a-note-on-lazy-loading nvim-ts-autotag.md /### A note on lazy loading
+nvim-ts-autotag-contributors nvim-ts-autotag.md /## Contributors
+nvim-ts-autotag-enable-update-on-insert nvim-ts-autotag.md /### Enable update on insert
+nvim-ts-autotag-extending-the-default-config nvim-ts-autotag.md /### Extending the default config
+nvim-ts-autotag-nvim-ts-autotag nvim-ts-autotag.md /# nvim-ts-autotag
+nvim-ts-autotag-setup nvim-ts-autotag.md /## Setup
+nvim-ts-autotag-sponsor nvim-ts-autotag.md /## Sponsor
+nvim-ts-autotag-usage nvim-ts-autotag.md /## Usage
+telescope-project.nvim-available-functions telescope-project.nvim.md /## Available functions:
+telescope-project.nvim-available-options telescope-project.nvim.md /## Available options:
+telescope-project.nvim-available-setup-settings telescope-project.nvim.md /## Available setup settings:
+telescope-project.nvim-default-mappings-insert-mode telescope-project.nvim.md /## Default mappings (insert mode):
+telescope-project.nvim-default-mappings-normal-mode telescope-project.nvim.md /## Default mappings (normal mode):
+telescope-project.nvim-demo telescope-project.nvim.md /## Demo
+telescope-project.nvim-installation telescope-project.nvim.md /## Installation
+telescope-project.nvim-lazy-nvim telescope-project.nvim.md /### Lazy.nvim
+telescope-project.nvim-packer-nvim telescope-project.nvim.md /### packer.nvim
+telescope-project.nvim-project telescope-project.nvim.md /### Project
+telescope-project.nvim-requirements telescope-project.nvim.md /## Requirements
+telescope-project.nvim-roadmap-blue-car telescope-project.nvim.md /## Roadmap :blue_car:
+telescope-project.nvim-setup telescope-project.nvim.md /## Setup
+telescope-project.nvim-telescope-project-nvim telescope-project.nvim.md /# telescope-project.nvim
\ No newline at end of file
diff --git a/nvim/lazy/readme/doc/telescope-project.nvim.md b/nvim/lazy/readme/doc/telescope-project.nvim.md
new file mode 100644
index 0000000..34c1730
--- /dev/null
+++ b/nvim/lazy/readme/doc/telescope-project.nvim.md
@@ -0,0 +1,190 @@
+# telescope-project.nvim
+
+An extension for [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim)
+that allows you to switch between projects.
+
+## Demo
+
+
+
+## Requirements
+
+- [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) (required)
+- [telescope-file-browser.nvim](https://github.com/nvim-telescope/telescope-file-browser.nvim) (optional, only for `file_browser` action)
+
+## Installation
+
+### Lazy.nvim
+
+```lua
+{
+ 'nvim-telescope/telescope-project.nvim',
+ dependencies = {
+ 'nvim-telescope/telescope.nvim',
+ },
+}
+```
+
+### packer.nvim
+
+```lua
+use {
+ 'nvim-telescope/telescope-project.nvim',
+ requires = {
+ 'nvim-telescope/telescope.nvim',
+ },
+}
+```
+
+## Setup
+
+You can set up the extension by adding the following to your config:
+
+```lua
+require'telescope'.load_extension('project')
+```
+
+You may skip explicitly loading extensions (they will then be lazy-loaded), but tab completions will not be available right away.
+
+## Available functions:
+
+### Project
+
+The `projects` picker:
+
+```lua
+require'telescope'.extensions.project.project{}
+```
+
+## Default mappings (normal mode):
+
+| Key | Description |
+| --- | ------------------------------------------------------------- |
+| `d` | delete currently selected project |
+| `r` | rename currently selected project |
+| `c` | create a project\* |
+| `s` | search inside files within your project |
+| `b` | browse inside files within your project |
+| `w` | change to the selected project's directory without opening it |
+| `R` | find a recently opened file within your project |
+| `f` | find a file within your project (same as \) |
+| `o` | change current cd scope |
+
+## Default mappings (insert mode):
+
+| Key | Description |
+| ------- | ------------------------------------------------------------- |
+| `` | delete currently selected project |
+| `` | rename currently selected project |
+| `` | create a project\* |
+| `` | search inside files within your project |
+| `` | browse inside files within your project |
+| `` | change to the selected project's directory without opening it |
+| `` | find a recently opened file within your project |
+| `` | find a file within your project (same as \) |
+| `` | change current cd scope |
+
+\* _defaults to your git root if used inside a git project, otherwise, it will use your current working directory_
+
+Example key map config:
+
+```lua
+vim.api.nvim_set_keymap(
+ 'n',
+ '',
+ ":lua require'telescope'.extensions.project.project{}",
+ {noremap = true, silent = true}
+)
+```
+
+## Available options:
+
+| Keys | Description | Options |
+| ---------------- | ------------------------------------------ | ----------------------------- |
+| `display_type` | Show the title and the path of the project | 'full' or 'minimal' (default) |
+| `hide_workspace` | Hide the workspace of the project | true or false (default) |
+
+Options can be added when requiring telescope-project, as shown below:
+
+```lua
+lua require'telescope'.extensions.project.project{ display_type = 'full' }
+```
+
+## Available setup settings:
+
+| Keys | Description | Options |
+| --------------------- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
+| `base_dirs` | Array of project base directory configurations | table (default: nil) |
+| `ignore_missing_dirs` | Don't show an error if base dirs are missing | bool (default: false) |
+| `hidden_files` | Show hidden files in selected project | bool (default: false) |
+| `order_by` | Order projects by `asc`, `desc`, `recent` | string (default: recent) |
+| `sync_with_nvim_tree` | Sync projects with nvim tree plugin | bool (default: false) |
+| `search_by` | Telescope finder search by field (title/path) | string or table (default: title). Can also be a table {"title", "path"} to search by both title and path |
+| `on_project_selected` | Custom handler when project is selected | function(prompt_bufnr) (default: find project files) |
+| `cd_scope` | Array of cd scopes: `tab`, `window`, `global` | table (default: {"tab", "window"}) |
+| `mappings` | Sets the mappings inside the telescope view | table (default: the mappings described bellow) |
+
+Setup settings can be added when requiring telescope, as shown below:
+
+```lua
+require('telescope').setup {
+ local project_actions = require("telescope._extensions.project.actions")
+ extensions = {
+ project = {
+ base_dirs = {
+ '~/dev/src',
+ {'~/dev/src2'},
+ {'~/dev/src3', max_depth = 4},
+ {path = '~/dev/src4'},
+ {path = '~/dev/src5', max_depth = 2},
+ },
+ ignore_missing_dirs = true, -- default: false
+ hidden_files = true, -- default: false
+ theme = "dropdown",
+ order_by = "asc",
+ search_by = "title",
+ sync_with_nvim_tree = true, -- default false
+ -- default for on_project_selected = find project files
+ on_project_selected = function(prompt_bufnr)
+ -- Do anything you want in here. For example:
+ project_actions.change_working_directory(prompt_bufnr, false)
+ require("harpoon.ui").nav_file(1)
+ end,
+ mappings = {
+ n = {
+ ['d'] = project_actions.delete_project,
+ ['r'] = project_actions.rename_project,
+ ['c'] = project_actions.add_project,
+ ['C'] = project_actions.add_project_cwd,
+ ['f'] = project_actions.find_project_files,
+ ['b'] = project_actions.browse_project_files,
+ ['s'] = project_actions.search_in_project_files,
+ ['R'] = project_actions.recent_project_files,
+ ['w'] = project_actions.change_working_directory,
+ ['o'] = project_actions.next_cd_scope,
+ },
+ i = {
+ [''] = project_actions.delete_project,
+ [''] = project_actions.rename_project,
+ [''] = project_actions.add_project,
+ [''] = project_actions.add_project_cwd,
+ [''] = project_actions.find_project_files,
+ [''] = project_actions.browse_project_files,
+ [''] = project_actions.search_in_project_files,
+ [''] = project_actions.recent_project_files,
+ [''] = project_actions.change_working_directory,
+ [''] = project_actions.next_cd_scope,
+ }
+ }
+ }
+ }
+}
+```
+
+## Roadmap :blue_car:
+
+- order projects by last opened :heavy_check_mark:
+- add all (git-enabled) subdirectories automatically :heavy_check_mark:
+- workspaces :construction:
+
+
\ No newline at end of file
diff --git a/nvim/lazy/snacks.nvim b/nvim/lazy/snacks.nvim
new file mode 160000
index 0000000..bc0630e
--- /dev/null
+++ b/nvim/lazy/snacks.nvim
@@ -0,0 +1 @@
+Subproject commit bc0630e43be5699bb94dadc302c0d21615421d93
diff --git a/nvim/lazy/state.json b/nvim/lazy/state.json
new file mode 100644
index 0000000..be53461
--- /dev/null
+++ b/nvim/lazy/state.json
@@ -0,0 +1 @@
+{"checker":{"last_check":1759051335}}
\ No newline at end of file
diff --git a/nvim/lazy/telescope-project.nvim b/nvim/lazy/telescope-project.nvim
new file mode 160000
index 0000000..8e11df9
--- /dev/null
+++ b/nvim/lazy/telescope-project.nvim
@@ -0,0 +1 @@
+Subproject commit 8e11df94419e444601c09828dadf70890484e443
diff --git a/nvim/lazy/telescope.nvim b/nvim/lazy/telescope.nvim
new file mode 160000
index 0000000..b4da76b
--- /dev/null
+++ b/nvim/lazy/telescope.nvim
@@ -0,0 +1 @@
+Subproject commit b4da76be54691e854d3e0e02c36b0245f945c2c7
diff --git a/nvim/lazy/todo-comments.nvim b/nvim/lazy/todo-comments.nvim
new file mode 160000
index 0000000..304a8d2
--- /dev/null
+++ b/nvim/lazy/todo-comments.nvim
@@ -0,0 +1 @@
+Subproject commit 304a8d204ee787d2544d8bc23cd38d2f929e7cc5
diff --git a/nvim/lazy/tokyonight.nvim b/nvim/lazy/tokyonight.nvim
new file mode 160000
index 0000000..057ef5d
--- /dev/null
+++ b/nvim/lazy/tokyonight.nvim
@@ -0,0 +1 @@
+Subproject commit 057ef5d260c1931f1dffd0f052c685dcd14100a3
diff --git a/nvim/lazy/trouble.nvim b/nvim/lazy/trouble.nvim
new file mode 160000
index 0000000..85bedb7
--- /dev/null
+++ b/nvim/lazy/trouble.nvim
@@ -0,0 +1 @@
+Subproject commit 85bedb7eb7fa331a2ccbecb9202d8abba64d37b3
diff --git a/nvim/lazy/ts-comments.nvim b/nvim/lazy/ts-comments.nvim
new file mode 160000
index 0000000..1bd9d0b
--- /dev/null
+++ b/nvim/lazy/ts-comments.nvim
@@ -0,0 +1 @@
+Subproject commit 1bd9d0ba1d8b336c3db50692ffd0955fe1bb9f0c
diff --git a/nvim/lazy/which-key.nvim b/nvim/lazy/which-key.nvim
new file mode 160000
index 0000000..370ec46
--- /dev/null
+++ b/nvim/lazy/which-key.nvim
@@ -0,0 +1 @@
+Subproject commit 370ec46f710e058c9c1646273e6b225acf47cbed
diff --git a/nvim/lazyvim.json b/nvim/lazyvim.json
new file mode 100644
index 0000000..6206f7e
--- /dev/null
+++ b/nvim/lazyvim.json
@@ -0,0 +1,10 @@
+{
+ "extras": [
+
+ ],
+ "install_version": 8,
+ "news": {
+ "NEWS.md": "10960"
+ },
+ "version": 8
+}
\ No newline at end of file
diff --git a/nvim/log b/nvim/log
new file mode 100644
index 0000000..7b59d59
--- /dev/null
+++ b/nvim/log
@@ -0,0 +1 @@
+ERR 2025-06-07T16:30:41.766 ui.46427 tui_stop:618: TUI already stopped (race?)
diff --git a/nvim/lua/config/autocmds.lua b/nvim/lua/config/autocmds.lua
new file mode 100644
index 0000000..4221e75
--- /dev/null
+++ b/nvim/lua/config/autocmds.lua
@@ -0,0 +1,8 @@
+-- Autocmds are automatically loaded on the VeryLazy event
+-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
+--
+-- Add any additional autocmds here
+-- with `vim.api.nvim_create_autocmd`
+--
+-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
+-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
diff --git a/nvim/lua/config/keymaps.lua b/nvim/lua/config/keymaps.lua
new file mode 100644
index 0000000..2c134f7
--- /dev/null
+++ b/nvim/lua/config/keymaps.lua
@@ -0,0 +1,3 @@
+-- Keymaps are automatically loaded on the VeryLazy event
+-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
+-- Add any additional keymaps here
diff --git a/nvim/lua/config/lazy.lua b/nvim/lua/config/lazy.lua
new file mode 100644
index 0000000..d73bfa1
--- /dev/null
+++ b/nvim/lua/config/lazy.lua
@@ -0,0 +1,53 @@
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+if not (vim.uv or vim.loop).fs_stat(lazypath) then
+ local lazyrepo = "https://github.com/folke/lazy.nvim.git"
+ local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
+ if vim.v.shell_error ~= 0 then
+ vim.api.nvim_echo({
+ { "Failed to clone lazy.nvim:\n", "ErrorMsg" },
+ { out, "WarningMsg" },
+ { "\nPress any key to exit..." },
+ }, true, {})
+ vim.fn.getchar()
+ os.exit(1)
+ end
+end
+vim.opt.rtp:prepend(lazypath)
+
+require("lazy").setup({
+ spec = {
+ -- add LazyVim and import its plugins
+ { "LazyVim/LazyVim", import = "lazyvim.plugins" },
+ -- import/override with your plugins
+ { import = "plugins" },
+ },
+ defaults = {
+ -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
+ -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
+ lazy = false,
+ -- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
+ -- have outdated releases, which may break your Neovim install.
+ version = false, -- always use the latest git commit
+ -- version = "*", -- try installing the latest stable version for plugins that support semver
+ },
+ install = { colorscheme = { "tokyonight", "habamax" } },
+ checker = {
+ enabled = true, -- check for plugin updates periodically
+ notify = false, -- notify on update
+ }, -- automatically check for plugin updates
+ performance = {
+ rtp = {
+ -- disable some rtp plugins
+ disabled_plugins = {
+ "gzip",
+ -- "matchit",
+ -- "matchparen",
+ -- "netrwPlugin",
+ "tarPlugin",
+ "tohtml",
+ "tutor",
+ "zipPlugin",
+ },
+ },
+ },
+})
diff --git a/nvim/lua/config/options.lua b/nvim/lua/config/options.lua
new file mode 100644
index 0000000..3ea1454
--- /dev/null
+++ b/nvim/lua/config/options.lua
@@ -0,0 +1,3 @@
+-- Options are automatically loaded before lazy.nvim startup
+-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
+-- Add any additional options here
diff --git a/nvim/lua/plugins/example.lua b/nvim/lua/plugins/example.lua
new file mode 100644
index 0000000..17f53d6
--- /dev/null
+++ b/nvim/lua/plugins/example.lua
@@ -0,0 +1,197 @@
+-- since this is just an example spec, don't actually load anything here and return an empty spec
+-- stylua: ignore
+if true then return {} end
+
+-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
+--
+-- In your plugin files, you can:
+-- * add extra plugins
+-- * disable/enabled LazyVim plugins
+-- * override the configuration of LazyVim plugins
+return {
+ -- add gruvbox
+ { "ellisonleao/gruvbox.nvim" },
+
+ -- Configure LazyVim to load gruvbox
+ {
+ "LazyVim/LazyVim",
+ opts = {
+ colorscheme = "gruvbox",
+ },
+ },
+
+ -- change trouble config
+ {
+ "folke/trouble.nvim",
+ -- opts will be merged with the parent spec
+ opts = { use_diagnostic_signs = true },
+ },
+
+ -- disable trouble
+ { "folke/trouble.nvim", enabled = false },
+
+ -- override nvim-cmp and add cmp-emoji
+ {
+ "hrsh7th/nvim-cmp",
+ dependencies = { "hrsh7th/cmp-emoji" },
+ ---@param opts cmp.ConfigSchema
+ opts = function(_, opts)
+ table.insert(opts.sources, { name = "emoji" })
+ end,
+ },
+
+ -- change some telescope options and a keymap to browse plugin files
+ {
+ "nvim-telescope/telescope.nvim",
+ keys = {
+ -- add a keymap to browse plugin files
+ -- stylua: ignore
+ {
+ "fp",
+ function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
+ desc = "Find Plugin File",
+ },
+ },
+ -- change some options
+ opts = {
+ defaults = {
+ layout_strategy = "horizontal",
+ layout_config = { prompt_position = "top" },
+ sorting_strategy = "ascending",
+ winblend = 0,
+ },
+ },
+ },
+
+ -- add pyright to lspconfig
+ {
+ "neovim/nvim-lspconfig",
+ ---@class PluginLspOpts
+ opts = {
+ ---@type lspconfig.options
+ servers = {
+ -- pyright will be automatically installed with mason and loaded with lspconfig
+ pyright = {},
+ },
+ },
+ },
+
+ -- add tsserver and setup with typescript.nvim instead of lspconfig
+ {
+ "neovim/nvim-lspconfig",
+ dependencies = {
+ "jose-elias-alvarez/typescript.nvim",
+ init = function()
+ require("lazyvim.util").lsp.on_attach(function(_, buffer)
+ -- stylua: ignore
+ vim.keymap.set( "n", "co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
+ vim.keymap.set("n", "cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
+ end)
+ end,
+ },
+ ---@class PluginLspOpts
+ opts = {
+ ---@type lspconfig.options
+ servers = {
+ -- tsserver will be automatically installed with mason and loaded with lspconfig
+ tsserver = {},
+ },
+ -- you can do any additional lsp server setup here
+ -- return true if you don't want this server to be setup with lspconfig
+ ---@type table
+ setup = {
+ -- example to setup with typescript.nvim
+ tsserver = function(_, opts)
+ require("typescript").setup({ server = opts })
+ return true
+ end,
+ -- Specify * to use this function as a fallback for any server
+ -- ["*"] = function(server, opts) end,
+ },
+ },
+ },
+
+ -- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
+ -- treesitter, mason and typescript.nvim. So instead of the above, you can use:
+ { import = "lazyvim.plugins.extras.lang.typescript" },
+
+ -- add more treesitter parsers
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = {
+ ensure_installed = {
+ "bash",
+ "html",
+ "javascript",
+ "json",
+ "lua",
+ "markdown",
+ "markdown_inline",
+ "python",
+ "query",
+ "regex",
+ "tsx",
+ "typescript",
+ "vim",
+ "yaml",
+ },
+ },
+ },
+
+ -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
+ -- would overwrite `ensure_installed` with the new value.
+ -- If you'd rather extend the default config, use the code below instead:
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ -- add tsx and treesitter
+ vim.list_extend(opts.ensure_installed, {
+ "tsx",
+ "typescript",
+ })
+ end,
+ },
+
+ -- the opts function can also be used to change the default opts:
+ {
+ "nvim-lualine/lualine.nvim",
+ event = "VeryLazy",
+ opts = function(_, opts)
+ table.insert(opts.sections.lualine_x, {
+ function()
+ return "😄"
+ end,
+ })
+ end,
+ },
+
+ -- or you can return new options to override all the defaults
+ {
+ "nvim-lualine/lualine.nvim",
+ event = "VeryLazy",
+ opts = function()
+ return {
+ --[[add your custom lualine config here]]
+ }
+ end,
+ },
+
+ -- use mini.starter instead of alpha
+ { import = "lazyvim.plugins.extras.ui.mini-starter" },
+
+ -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
+ { import = "lazyvim.plugins.extras.lang.json" },
+
+ -- add any tools you want to have installed below
+ {
+ "williamboman/mason.nvim",
+ opts = {
+ ensure_installed = {
+ "stylua",
+ "shellcheck",
+ "shfmt",
+ "flake8",
+ },
+ },
+ },
+}
diff --git a/nvim/lua/plugins/project.lua b/nvim/lua/plugins/project.lua
new file mode 100644
index 0000000..5293003
--- /dev/null
+++ b/nvim/lua/plugins/project.lua
@@ -0,0 +1,7 @@
+return {
+ "nvim-telescope/telescope-project.nvim",
+ dependencies = { "nvim-telescope/telescope.nvim" },
+ config = function()
+ require("telescope").load_extension("projects")
+ end,
+}
diff --git a/nvim/lua/plugins/telescope-project.lua b/nvim/lua/plugins/telescope-project.lua
new file mode 100644
index 0000000..4204f62
--- /dev/null
+++ b/nvim/lua/plugins/telescope-project.lua
@@ -0,0 +1,10 @@
+-- lua/plugins/telescope-project.lua
+return {
+ "nvim-telescope/telescope-project.nvim",
+ event = "VeryLazy", -- Lädt das Plugin erst bei Bedarf
+ dependencies = { "nvim-telescope/telescope.nvim" },
+ config = function()
+ -- Lade die Erweiterung, sobald das Plugin konfiguriert ist
+ require("telescope").load_extension("project")
+ end,
+}
diff --git a/nvim/lua/plugins/telescope.lua b/nvim/lua/plugins/telescope.lua
new file mode 100644
index 0000000..ca40ba7
--- /dev/null
+++ b/nvim/lua/plugins/telescope.lua
@@ -0,0 +1,8 @@
+return {
+ "nvim-telescope/telescope.nvim",
+ dependencies = { "nvim-lua/plenary.nvim" },
+ cmd = "Telescope",
+ config = function()
+ require("telescope").setup()
+ end,
+}
diff --git a/nvim/mason-registry-update b/nvim/mason-registry-update
new file mode 100644
index 0000000..7049fd1
--- /dev/null
+++ b/nvim/mason-registry-update
@@ -0,0 +1,2 @@
+4bc023e04557981c15a8f2a14a72a2aef3b9e0e743abfb8f34f04a4cecb37ef4
+1759051349
\ No newline at end of file
diff --git a/nvim/mason/bin/lua-language-server b/nvim/mason/bin/lua-language-server
new file mode 120000
index 0000000..da1879c
--- /dev/null
+++ b/nvim/mason/bin/lua-language-server
@@ -0,0 +1 @@
+/home/daniel/.local/share/nvim/mason/packages/lua-language-server/lua-language-server
\ No newline at end of file
diff --git a/nvim/mason/bin/shfmt b/nvim/mason/bin/shfmt
new file mode 120000
index 0000000..1369017
--- /dev/null
+++ b/nvim/mason/bin/shfmt
@@ -0,0 +1 @@
+/home/daniel/.local/share/nvim/mason/packages/shfmt/shfmt_v3.11.0_linux_amd64
\ No newline at end of file
diff --git a/nvim/mason/packages/lua-language-server/libexec/LICENSE b/nvim/mason/packages/lua-language-server/libexec/LICENSE
new file mode 100644
index 0000000..9bfa8ae
--- /dev/null
+++ b/nvim/mason/packages/lua-language-server/libexec/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018 最èŒå°æ±
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/nvim/mason/packages/lua-language-server/libexec/bin/lua-language-server b/nvim/mason/packages/lua-language-server/libexec/bin/lua-language-server
new file mode 100755
index 0000000..1d6cf87
Binary files /dev/null and b/nvim/mason/packages/lua-language-server/libexec/bin/lua-language-server differ
diff --git a/nvim/mason/packages/lua-language-server/libexec/bin/main.lua b/nvim/mason/packages/lua-language-server/libexec/bin/main.lua
new file mode 100644
index 0000000..00036f3
--- /dev/null
+++ b/nvim/mason/packages/lua-language-server/libexec/bin/main.lua
@@ -0,0 +1,85 @@
+local main, exec
+local i = 1
+while arg[i] do
+ if arg[i] == '-E' then
+ elseif arg[i] == '-e' then
+ i = i + 1
+ local expr = assert(arg[i], "'-e' needs argument")
+ assert(load(expr, "=(command line)"))()
+ -- exit after the executing
+ exec = true
+ elseif not main and arg[i]:sub(1, 1) ~= '-' then
+ main = i
+ elseif arg[i]:sub(1, 2) == '--' then
+ break
+ end
+ i = i + 1
+end
+
+if exec and not main then
+ return
+end
+
+if main then
+ for i = -1, -999, -1 do
+ if not arg[i] then
+ for j = i + 1, -1 do
+ arg[j - main + 1] = arg[j]
+ end
+ break
+ end
+ end
+ for j = 1, #arg do
+ arg[j - main] = arg[j]
+ end
+ for j = #arg - main + 1, #arg do
+ arg[j] = nil
+ end
+end
+
+local root
+do
+ if main then
+ local fs = require 'bee.filesystem'
+ local mainPath = fs.path(arg[0])
+ root = mainPath:parent_path():string()
+ if root == '' then
+ root = '.'
+ end
+ else
+ local sep = package.config:sub(1, 1)
+ if sep == '\\' then
+ sep = '/\\'
+ end
+ local pattern = "[" .. sep .. "]+[^" .. sep .. "]+"
+ root = package.cpath:match("([^;]+)" .. pattern .. pattern .. "$")
+ arg[0] = root .. package.config:sub(1, 1) .. 'main.lua'
+ end
+ root = root:gsub('[/\\]', package.config:sub(1, 1))
+end
+
+package.path = table.concat({
+ root .. "/script/?.lua",
+ root .. "/script/?/init.lua",
+}, ";"):gsub('/', package.config:sub(1, 1))
+
+package.searchers[2] = function (name)
+ local filename, err = package.searchpath(name, package.path)
+ if not filename then
+ return err
+ end
+ local f = io.open(filename)
+ if not f then
+ return 'cannot open file:' .. filename
+ end
+ local buf = f:read '*a'
+ f:close()
+ local relative = filename:sub(1, #root) == root and filename:sub(#root + 2) or filename
+ local init, err = load(buf, '@' .. relative)
+ if not init then
+ return err
+ end
+ return init, filename
+end
+
+assert(loadfile(arg[0]))(table.unpack(arg))
diff --git a/nvim/mason/packages/lua-language-server/libexec/changelog.md b/nvim/mason/packages/lua-language-server/libexec/changelog.md
new file mode 100644
index 0000000..9388efd
--- /dev/null
+++ b/nvim/mason/packages/lua-language-server/libexec/changelog.md
@@ -0,0 +1,2302 @@
+# changelog
+
+## Unreleased
+
+
+## 3.14.0
+`2025-4-7`
+* `NEW` locale `es-419`, thanks [Felipe Lema](https://codeberg.org/FelipeLema)
+* `FIX` prevent unnecessary edits by LSP formatting when content did not change
+* `FIX` return no completions if completion is disabled
+* `FIX` optimized the performance of large literal tables (e.g., configuration tables)
+
+## 3.13.9
+`2025-3-13`
+* `CHG` remove the limit for analyzing the literal table
+
+## 3.13.8
+`2025-3-12`
+* `CHG` when analyzing the literal table, only the first 100 items are analyzed at most
+* `CHG` when checking type matching for union types, only the first 100 items are checked at most
+* `FIX` Update `--help` message.
+* `FIX` --check now respects ignoreDir setting
+* `FIX` incorrect argument skip pattern for `--check_out_path=`, which incorrectly skips the next argument
+
+## 3.13.7
+`2025-3-10`
+* `NEW` CLI: added `--help`.
+* `CHG` default path for `--doc_out_path` is the current directory
+* `FIX` incorrect argument skip pattern for `--check_out_path=`, which incorrectly skips the next argument
+* `FIX` incorrect error message for `--doc_update`.
+* `FIX` reimplement section `luals.config` in file doc.json
+* `FIX` incorrect file names in file doc.json
+* `FIX` remove extra `./` path prefix in the check report when using `--check=.`
+* `FIX` Narrowing of types with literal fields: [#3056](https://github.com/LuaLS/lua-language-server/issues/3056), [#3089](https://github.com/LuaLS/lua-language-server/issues/3089)
+* `FIX` correct lua version of `math.ult` and `math.type`
+* `FIX` incorrect links for `pattern` in `string` methods
+* `FIX` fix type annotations for bit module
+* `FIX` Another regression related to type narrow and generic param introduced since `v3.10.1` [#3087](https://github.com/LuaLS/lua-language-server/issues/3087)
+
+## 3.13.6
+`2025-2-6`
+* `NEW` `---@class` supports attribute `partial`, which will not check missing inherited fields [#3023](https://github.com/LuaLS/lua-language-server/issues/3023)
+ ```lua
+ ---@class Config
+ ---@field a number
+
+ ---@class (partial) Config.P: Config
+ ---@field b number
+
+ ---@type Config.P[]
+ local cfgs = {}
+ cfgs[1] = { b = 1 } -- no warning
+ cfgs[2] = {} -- only warns missing `b`
+ ```
+ This enables the previous missing field check behavior before [#2970](https://github.com/LuaLS/lua-language-server/issues/2970)
+* `NEW` Added variable substitution support for vscode's `${workspaceFolder:x}` when resolving path placeholders [#2987](https://github.com/LuaLS/lua-language-server/issues/2987)
+* `NEW` Added `--check_format=json|pretty` for use with `--check` to output diagnostics in a human readable format.
+* `NEW` Test CLI: `--name=` `-n=`: run specify unit test
+* `CHG` Generic pattern now supports definition after capture and optional, union, array [#3014](https://github.com/LuaLS/lua-language-server/issues/3014) [#3031](https://github.com/LuaLS/lua-language-server/pull/3031)
+ ```lua
+ ---@generic T
+ ---@param t `T`.Cat?
+ ---@return T?
+ local function f(t) end
+
+ local t = f('Smile') --> t is `(Smile.Cat)?`
+ ```
+* `FIX` Fixed the error that the configuration file pointed to by the `--configpath` option was not read and loaded.
+* `FIX` Don't truncate any output when running in `--doc` mode [#3049](https://github.com/LuaLS/lua-language-server/issues/3049)
+* `FIX` Generic return can be optional.
+* `FIX` Fixed the comment calculating in docs `---@param a string?Comment` - now its `Comment` instead of `omment` [#3028](https://github.com/LuaLS/lua-language-server/pull/3028)
+* `FIX` Fixed cannot bind variables using tail comment `@class` [#2673](https://github.com/LuaLS/lua-language-server/issues/2673)
+* `FIX` Fixed missing field completion for generic class object [#2196](https://github.com/LuaLS/lua-language-server/issues/2196) [#2945](https://github.com/LuaLS/lua-language-server/issues/2945) [#3041](https://github.com/LuaLS/lua-language-server/issues/3041)
+
+## 3.13.5
+`2024-12-20`
+* `NEW` Setting: `Lua.hint.awaitPropagate`: When enabled, `--@async` propagates to the caller.
+* `CHG` Add server version information to `initialize` response [#2996](https://github.com/LuaLS/lua-language-server/pull/2996)
+* `CHG` If the `---@field` of the same name has a type of `fun`, the `duplicate-doc-field` check will not be performed.
+* `FIX` Incorrect infer for function array annotation on tables [#2367](https://github.com/LuaLS/lua-language-server/issues/2367)
+
+## 3.13.4
+`2024-12-13`
+* `CHG` Can adjust the level of detail of Hover (VSCode)
+
+## 3.13.3
+`2024-12-6`
+* `CHG` Update Love2d version
+* `CHG` Improve type infer of `table.unpack` and `unpack`
+* `FIX` `missing-fields` diagnostic now warns about missing inherited fields
+* `FIX` Incorrect `param-type-mismatch` diagnostic for optional fields
+
+## 3.13.2
+`2024-11-21`
+* `CHG` fulfill zh-cn translations
+* `FIX` Add missing `errs ~= nil` checks to script/vm/type checkTableShape
+
+## 3.13.1
+`2024-11-13`
+* `FIX` Incorrect type check in some case
+
+## 3.13.0
+`2024-11-13`
+* `NEW` Setting: `Lua.type.inferTableSize`: A Small Table array can be infered
+* `NEW` Add custom repository support for addonManager. New configuration setting: `Lua.addonManager.repositoryBranch` and `Lua.addonManager.repositoryPath`
+* `NEW` Infer function parameter types when the function is used as an callback argument and that argument has a `fun()` annotation. Enable with `Lua.type.inferParamType` setting. [#2695](https://github.com/LuaLS/lua-language-server/pull/2695)
+ ```lua
+ ---@param callback fun(a: integer)
+ function register(callback) end
+
+ local function callback(a) end --> a: integer
+ register(callback)
+ ```
+* `CHG` Basic types allow contravariance
+ ```lua
+ ---@class int32: integer
+
+ ---@type integer
+ local n
+
+ ---@type int32
+ local a = n
+ ```
+* `FIX` Improve type narrow with **literal alias type** during completion and signature help
+
+## 3.12.0
+`2024-10-30`
+* `NEW` Support importing `enum` through class name suffix matching in quick fixes, allowing the import of `enum` from `table.table.enum; return table`.
+* `NEW` Support limited multiline annotations
+ ```lua
+ ---@type {
+ --- x: number,
+ --- y: number,
+ --- z: number,
+ ---}
+ local point --> local point: { x: number, y: number, z: number }
+ ```
+* `FIX` A regression related to type narrow and generic param introduced since `v3.10.1`
+* `FIX` Parse storagePath to improve reliability of resolving ${addons} placeholder
+* `FIX` Reference should also look in tablefield
+* `FIX` Determine that the index of `{...}` is an integer when iterating
+
+## 3.11.1
+`2024-10-9`
+* `FIX` Fixed an issue preventing to set the locale to Japanese
+* `FIX` Preserve newlines between function comment and @see
+* `FIX` Accept storagePath option from client to resolve addon directory not found
+
+## 3.11.0
+`2024-9-30`
+* `NEW` Added support for Japanese locale
+* `NEW` Infer function parameter types when overriding the same-named class function in an instance of that class [#2158](https://github.com/LuaLS/lua-language-server/issues/2158)
+* `NEW` Types with literal fields can be narrowed.
+* `NEW` Reference addons installed via the addon manager with `${addons}` [#2866](https://github.com/LuaLS/lua-language-server/pull/2866).
+* `NEW` Support using `---@class` on `rawset(_G, ...)` to annotate the created global variable [#2862](https://github.com/LuaLS/lua-language-server/issues/2862)
+* `NEW` Settings:
+ + `Lua.language.fixIndent`
+ + `Lua.language.completeAnnotation`
+* `FIX` Eliminate floating point error in test benchmark output
+* `FIX` Remove luamake install from make scripts
+* `FIX` Incorrect `table` type injected to the global variable created by `rawset(_G, ...)` [#2863](https://github.com/LuaLS/lua-language-server/issues/2863)
+
+## 3.10.6
+`2024-9-10`
+* `NEW` Custom documentation exporter
+* `NEW` Setting: `Lua.docScriptPath`: Path to a script that overrides `cli.doc.export`, allowing user-specified documentation exporting.
+* `NEW` Infer the parameter types of a same-named function in the subclass based on the parameter types in the superclass function.
+* `FIX` Fix `VM.OnCompileFunctionParam` function in plugins
+* `FIX` Lua 5.1: fix incorrect warning when using setfenv with an int as first parameter
+* `FIX` Improve type narrow by checking exact match on literal type params
+* `FIX` Correctly list enums for function overload arguments [#2840](https://github.com/LuaLS/lua-language-server/pull/2840)
+* `FIX` Incorrect function params' type infer when there is only `@overload` [#2509](https://github.com/LuaLS/lua-language-server/issues/2509) [#2708](https://github.com/LuaLS/lua-language-server/issues/2708) [#2709](https://github.com/LuaLS/lua-language-server/issues/2709)
+* `FIX` Only call workspace/configuration when available [#981](https://github.com/LuaLS/lua-language-server/issues/981), [#2318](https://github.com/LuaLS/lua-language-server/issues/2318), [2336](https://github.com/LuaLS/lua-language-server/issues/2336) [#2843](https://github.com/LuaLS/lua-language-server/pull/2843)
+
+## 3.10.5
+`2024-8-19`
+* `NEW` using `enum (partial)`, it suggests all fields with the same `enum` type rather than just the fields from the current table.
+* `NEW` When using `enum["" or ]`, undefined fields will raise an 'undefined' error.
+* `FIX` Renaming files in the directory leads to the auto-correction in "require" adding extra characters.
+* `FIX` Performance issue
+* `FIX` Fix incorrect indent fixing for `for`
+
+## 3.10.4
+`2024-8-16`
+* `NEW` Setting: `Lua.type.checkTableShape`: Add matching checks between the shape of tables and classes, during type checking. [#2768](https://github.com/LuaLS/lua-language-server/pull/2768)
+* `NEW` `undefined-field` supports `enum`
+* `CHG` Show enumed table as `enum X` instead of `table`
+* `FIX` Error `attempt to index a nil value` when `Lua.hint.semicolon == 'All'` [#2788](https://github.com/LuaLS/lua-language-server/issues/2788)
+* `FIX` Incorrect LuaCats parsing for `"'"`
+* `FIX` Incorrect indent fixings
+
+## 3.10.3
+`2024-8-8`
+* `FIX` Memory leak with `---@enum(partical)`
+
+## 3.10.2
+`2024-8-7`
+* `NEW` Add support for binary metamethod on right operand [#2777](https://github.com/LuaLS/lua-language-server/pull/2777)
+* `FIX` Incorrect indentation fixing in some case
+
+## 3.10.1
+`2024-8-2`
+* `FIX` Runtime error
+* `FIX` Disable indentation fixing for Non-VSCode
+
+## 3.10.0
+`2024-8-1`
+* `NEW` Add postfix snippet for `unpack`
+* `NEW` Add support for lambda style functions, `|paramList| expr` is syntactic sugar for `function(paramList) return expr end`
+* `NEW` Added lua regular expression support for `Lua.doc.Name` [#2753](https://github.com/LuaLS/lua-language-server/pull/2753)
+* `NEW` You can now click on "References" in CodeLen to display the reference list(VSCode)
+* `NEW` Improved behavior for inserting new lines:
+ + When inside an annotation, an annotation tag will be added at the beginning of the line (VSCode).
+ + When between `function () end` or similar constructs, the format will be adjusted to a more reasonable one (VSCode) and leading/trailing spaces will be removed (generic).
+ + Attempts to semantically fix improper indentation (generic).
+* `CHG` Improve performance of multithreaded `--check` and `undefined-field` diagnostic
+* `CHG` Change spacing of parameter inlay hints to match other LSPs, like `rust-analyzer`
+* `FIX` `diagnostics.severity` defaulting to "Warning" when run using `--check` [#2730](https://github.com/LuaLS/lua-language-server/issues/2730)
+* `FIX` Respect `completion.showParams` config for local function completion
+* `FIX` Addons can now self-recommend as expected. Fixed by correcting the `wholeMatch` function
+* `FIX` Now correctly evaluates the visibility of fields in a class when they are defined directly in the object. use for completion and invisible dianostic. [#2752](https://github.com/LuaLS/lua-language-server/issues/2752)
+* `FIX` Bad triggering of the `inject-field` diagnostic, when the fields are declared at the creation of the object [#2746](https://github.com/LuaLS/lua-language-server/issues/2746)
+* `FIX` Inconsistent type narrow behavior of function call args [#2758](https://github.com/LuaLS/lua-language-server/issues/2758)
+* `FIX` Improve the `missing-fields` logic to be able to correctly handle classes defined several times [#22770](https://github.com/LuaLS/lua-language-server/pull/2770)
+* `FIX` Typos in annotation descriptions
+* `FIX` incorrect `CompletionItemKind` for postfix snippets [#2773](https://github.com/LuaLS/lua-language-server/pull/2773)
+
+## 3.9.3
+`2024-6-11`
+* `FIX` Sometimes providing incorrect autocompletion when chaining calls
+
+## 3.9.2
+`2024-6-6`
+* `NEW` Reference workspace symbols in comments using `[some text](lua://symbolName)` syntax
+* `FIX` Don't do diagnostics when the workspace is not ready
+* `FIX` Autocompletion for enum values ​​is not available in some cases
+
+## 3.9.1
+`2024-5-14`
+* revert extension runtime
+
+## 3.9.0
+`2024-5-11`
+* `NEW` goto implementation
+* `NEW` narrow the function prototype based on the parameter type
+ ```lua
+ ---@overload fun(a: boolean): A
+ ---@overload fun(a: number): B
+ local function f(...) end
+
+ local r1 = f(true) --> r1 is `A`
+ local r2 = f(10) --> r2 is `B`
+ ```
+
+## 3.8.3
+`2024-4-23`
+* `FIX` server may crash when the workspace is using a non-English path.
+
+## 3.8.2
+`2024-4-23`
+* This is a fake version only for the new version of VSCode, with a core of 3.8.0.
+
+## 3.8.1
+`2024-4-23`
+* This is a fake version only for the old version of VSCode, with a core of `3.7.4`. Starting from the next minor version, the version requirement for VSCode will be raised to prevent users still using the old version of VSCode from updating to the new version and experiencing compatibility issues.
+
+## 3.8.0
+`2024-4-22`
+* `NEW` supports tuple type (@[lizho])
+ ```lua
+ ---@type [string, number, boolean]
+ local t
+
+ local x = t[1] --> x is `string`
+ local y = t[2] --> y is `number`
+ local z = t[3] --> z is `boolean`
+ ```
+* `NEW` generic pattern (@[fesily])
+ ```lua
+ ---@generic T
+ ---@param t Cat.`T`
+ ---@return T
+ local function f(t) end
+
+ local t = f('Smile') --> t is `Cat.Smile`
+ ```
+* `NEW` alias and enums supports attribute `partial`
+ ```lua
+ ---@alias Animal Cat
+
+ ---@alias(partial) Animal Dog
+
+ ---@type Animal
+ local animal --> animal is `Cat|Dog` here
+ ```
+
+ ```lua
+ ---@enum(key) ErrorCodes
+ local codes1 = {
+ OK = 0,
+ ERROR = 1,
+ FATAL = 2,
+ }
+
+ ---@enum(key, partial) ErrorCodes
+ local codes2 = {
+ WARN = 3,
+ INFO = 4,
+ }
+
+ ---@type ErrorCodes
+ local code
+
+ code = 'ERROR' --> OK
+ code = 'WARN' --> OK
+
+ ```
+* `NEW` plugin: add `OnTransFormAst` interface (@[fesily])
+* `NEW` plugin: add `OnNodeCompileFunctionParam` interface (@[fesily])
+* `NEW` plugin: add `ResolveRequire` interface (@[Artem Dzhemesiuk])
+* `NEW` plugin: support multi plugins (@[fesily])
+ + setting: `Lua.runtime.plugin` can be `string|string[]`
+ + setting: `Lua.runtime.pluginArgs` can be `string[]|table`
+* `NEW` CLI: `--doc` add option `--doc_out_path ` (@[Andreas Matthias])
+* `NEW` CLI: `--doc_update`, update an existing `doc.json` without using `--doc` again (@[Andreas Matthias])
+* `NEW` CLI: `--trust_all_plugins`, this is potentially unsafe for normal use and meant for usage in CI environments only (@[Paul Emmerich])
+* `CHG` CLI: `--check` will run plugins (@[Daniel Farrell])
+* `FIX` diagnostic: `discard-returns` not works in some blocks (@clay-golem)
+* `FIX` rename in library files
+
+## 3.7.4
+`2024-1-5`
+* `FIX` rename to unicode with `Lua.runtime.unicodeName = true`
+
+## 3.7.3
+`2023-11-14`
+* `FIX` can not infer arg type in some cases.
+
+## 3.7.2
+`2023-11-9`
+* `FIX` [#2407]
+
+[#2407]: https://github.com/LuaLS/lua-language-server/issues/2407
+
+## 3.7.1
+`2023-11-7`
+* `FIX` [#2299]
+* `FIX` [#2335]
+
+[#2299]: https://github.com/LuaLS/lua-language-server/issues/2299
+[#2335]: https://github.com/LuaLS/lua-language-server/issues/2335
+
+## 3.7.0
+`2023-8-24`
+* `NEW` support `---@type` and `--[[@as]]` for return statement
+* `NEW` commandline parameter `--force-accept-workspace`: allowing the use of the root directory or home directory as the workspace
+* `NEW` diagnostic: `inject-field`
+* `NEW` `---@enum` supports attribute `key`
+ ```lua
+ ---@enum (key) AnimalType
+ local enum = {
+ Cat = 1,
+ Dog = 2,
+ }
+
+ ---@param animal userdata
+ ---@param atp AnimalType
+ ---@return boolean
+ local function isAnimalType(animal, atp)
+ return API.isAnimalType(animal, enum[atp])
+ end
+
+ assert(isAnimalType(animal, 'Cat'))
+ ```
+* `NEW` `---@class` supports attribute `exact`
+ ```lua
+ ---@class (exact) Point
+ ---@field x number
+ ---@field y number
+ local m = {}
+ m.x = 1 -- OK
+ m.y = 2 -- OK
+ m.z = 3 -- Warning
+ ```
+
+* `FIX` wrong hover and signature for method with varargs and overloads
+* `FIX` [#2155]
+* `FIX` [#2224]
+* `FIX` [#2252]
+* `FIX` [#2267]
+
+[#2155]: https://github.com/LuaLS/lua-language-server/issues/2155
+[#2224]: https://github.com/LuaLS/lua-language-server/issues/2224
+[#2252]: https://github.com/LuaLS/lua-language-server/issues/2252
+[#2267]: https://github.com/LuaLS/lua-language-server/issues/2267
+
+## 3.6.25
+`2023-7-26`
+* `FIX` [#2214]
+
+[#2214]: https://github.com/LuaLS/lua-language-server/issues/2214
+
+## 3.6.24
+`2023-7-21`
+* `NEW` diagnostic: `missing-fields`
+* `FIX` shake of `codeLens`
+* `FIX` [#2145]
+
+[#2145]: https://github.com/LuaLS/lua-language-server/issues/2145
+
+## 3.6.23
+`2023-7-7`
+* `CHG` signature: narrow by inputed literal
+
+## 3.6.22
+`2023-6-14`
+* `FIX` [#2038]
+* `FIX` [#2042]
+* `FIX` [#2062]
+* `FIX` [#2083]
+* `FIX` [#2088]
+* `FIX` [#2110]
+* `FIX` [#2129]
+
+[#2038]: https://github.com/LuaLS/lua-language-server/issues/2038
+[#2042]: https://github.com/LuaLS/lua-language-server/issues/2042
+[#2062]: https://github.com/LuaLS/lua-language-server/issues/2062
+[#2083]: https://github.com/LuaLS/lua-language-server/issues/2083
+[#2088]: https://github.com/LuaLS/lua-language-server/issues/2088
+[#2110]: https://github.com/LuaLS/lua-language-server/issues/2110
+[#2129]: https://github.com/LuaLS/lua-language-server/issues/2129
+
+## 3.6.21
+`2023-5-24`
+* `FIX` disable ffi plugin
+
+## 3.6.20
+`2023-5-23`
+* `NEW` support connecting by socket with `--socket=PORT`
+* `FIX` [#2113]
+
+[#2113]: https://github.com/LuaLS/lua-language-server/issues/2113
+
+## 3.6.19
+`2023-4-26`
+* `FIX` commandline parameter `checklevel` may not work
+* `FIX` [#2036]
+* `FIX` [#2037]
+* `FIX` [#2056]
+* `FIX` [#2077]
+* `FIX` [#2081]
+
+[#2036]: https://github.com/LuaLS/lua-language-server/issues/2036
+[#2037]: https://github.com/LuaLS/lua-language-server/issues/2037
+[#2056]: https://github.com/LuaLS/lua-language-server/issues/2056
+[#2077]: https://github.com/LuaLS/lua-language-server/issues/2077
+[#2081]: https://github.com/LuaLS/lua-language-server/issues/2081
+
+## 3.6.18
+`2023-3-23`
+* `FIX` [#1943]
+* `FIX` [#1996]
+* `FIX` [#2004]
+* `FIX` [#2013]
+
+[#1943]: https://github.com/LuaLS/lua-language-server/issues/1943
+[#1996]: https://github.com/LuaLS/lua-language-server/issues/1996
+[#2004]: https://github.com/LuaLS/lua-language-server/issues/2004
+[#2013]: https://github.com/LuaLS/lua-language-server/issues/2013
+
+## 3.6.17
+`2023-3-9`
+* `CHG` export documents: export global variables
+* `FIX` [#1715]
+* `FIX` [#1753]
+* `FIX` [#1914]
+* `FIX` [#1922]
+* `FIX` [#1924]
+* `FIX` [#1928]
+* `FIX` [#1945]
+* `FIX` [#1955]
+* `FIX` [#1978]
+
+[#1715]: https://github.com/LuaLS/lua-language-server/issues/1715
+[#1753]: https://github.com/LuaLS/lua-language-server/issues/1753
+[#1914]: https://github.com/LuaLS/lua-language-server/issues/1914
+[#1922]: https://github.com/LuaLS/lua-language-server/issues/1922
+[#1924]: https://github.com/LuaLS/lua-language-server/issues/1924
+[#1928]: https://github.com/LuaLS/lua-language-server/issues/1928
+[#1945]: https://github.com/LuaLS/lua-language-server/issues/1945
+[#1955]: https://github.com/LuaLS/lua-language-server/issues/1955
+[#1978]: https://github.com/LuaLS/lua-language-server/issues/1978
+
+## 3.6.13
+`2023-3-2`
+* `FIX` setting: `Lua.addonManager.enable` should be `true` by default
+* `FIX` failed to publish to Windows
+
+## 3.6.12
+`2023-3-2`
+* `NEW` [Addon Manager](https://github.com/LuaLS/lua-language-server/discussions/1607), try it with command `lua.addon_manager.open`. Thanks to [carsakiller](https://github.com/carsakiller)!
+
+## 3.6.11
+`2023-2-13`
+* `CHG` completion: don't show loading process
+* `FIX` [#1886]
+* `FIX` [#1887]
+* `FIX` [#1889]
+* `FIX` [#1895]
+* `FIX` [#1902]
+
+[#1886]: https://github.com/LuaLS/lua-language-server/issues/1886
+[#1887]: https://github.com/LuaLS/lua-language-server/issues/1887
+[#1889]: https://github.com/LuaLS/lua-language-server/issues/1889
+[#1895]: https://github.com/LuaLS/lua-language-server/issues/1895
+[#1902]: https://github.com/LuaLS/lua-language-server/issues/1902
+
+## 3.6.10
+`2023-2-7`
+* `FIX` [#1869]
+* `FIX` [#1872]
+
+[#1869]: https://github.com/LuaLS/lua-language-server/issues/1869
+[#1872]: https://github.com/LuaLS/lua-language-server/issues/1872
+
+## 3.6.9
+`2023-2-2`
+* `FIX` [#1864]
+* `FIX` [#1868]
+* `FIX` [#1869]
+* `FIX` [#1871]
+
+[#1864]: https://github.com/LuaLS/lua-language-server/issues/1864
+[#1868]: https://github.com/LuaLS/lua-language-server/issues/1868
+[#1869]: https://github.com/LuaLS/lua-language-server/issues/1869
+[#1871]: https://github.com/LuaLS/lua-language-server/issues/1871
+
+## 3.6.8
+`2023-1-31`
+* `NEW` command `lua.exportDocument` . VSCode will display this command in the right-click menu
+* `CHG` setting `Lua.workspace.supportScheme` has been removed. All schemes are supported if the language id is `lua`
+* `FIX` [#1831]
+* `FIX` [#1838]
+* `FIX` [#1841]
+* `FIX` [#1851]
+* `FIX` [#1855]
+* `FIX` [#1857]
+
+[#1831]: https://github.com/LuaLS/lua-language-server/issues/1831
+[#1838]: https://github.com/LuaLS/lua-language-server/issues/1838
+[#1841]: https://github.com/LuaLS/lua-language-server/issues/1841
+[#1851]: https://github.com/LuaLS/lua-language-server/issues/1851
+[#1855]: https://github.com/LuaLS/lua-language-server/issues/1855
+[#1857]: https://github.com/LuaLS/lua-language-server/issues/1857
+
+## 3.6.7
+`2023-1-20`
+* `FIX` [#1810]
+* `FIX` [#1829]
+
+[#1810]: https://github.com/LuaLS/lua-language-server/issues/1810
+[#1829]: https://github.com/LuaLS/lua-language-server/issues/1829
+
+## 3.6.6
+`2023-1-17`
+* `FIX` [#1825]
+* `FIX` [#1826]
+
+[#1825]: https://github.com/LuaLS/lua-language-server/issues/1825
+[#1826]: https://github.com/LuaLS/lua-language-server/issues/1826
+
+## 3.6.5
+`2023-1-16`
+* `NEW` support casting global variables
+* `NEW` code lens: this feature is disabled by default.
+* `NEW` settings:
+ * `Lua.codeLens.enable`: Enable code lens.
+* `CHG` improve memory usage for large libraries
+* `CHG` definition: supports finding definitions for `@class` and `@alias`, since they may be defined multi times
+* `CHG` rename: supports `@field`
+* `CHG` improve patch for `.luarc.json`
+* `CHG` `---@meta [name]`: once declared `name`, user can only require this file by declared name. meta file can not be required with name `_`
+* `CHG` remove telemetry
+* `FIX` [#831]
+* `FIX` [#1729]
+* `FIX` [#1737]
+* `FIX` [#1751]
+* `FIX` [#1767]
+* `FIX` [#1796]
+* `FIX` [#1805]
+* `FIX` [#1808]
+* `FIX` [#1811]
+* `FIX` [#1824]
+
+[#831]: https://github.com/LuaLS/lua-language-server/issues/831
+[#1729]: https://github.com/LuaLS/lua-language-server/issues/1729
+[#1737]: https://github.com/LuaLS/lua-language-server/issues/1737
+[#1751]: https://github.com/LuaLS/lua-language-server/issues/1751
+[#1767]: https://github.com/LuaLS/lua-language-server/issues/1767
+[#1796]: https://github.com/LuaLS/lua-language-server/issues/1796
+[#1805]: https://github.com/LuaLS/lua-language-server/issues/1805
+[#1808]: https://github.com/LuaLS/lua-language-server/issues/1808
+[#1811]: https://github.com/LuaLS/lua-language-server/issues/1811
+[#1824]: https://github.com/LuaLS/lua-language-server/issues/1824
+
+## 3.6.4
+`2022-11-29`
+* `NEW` modify `require` after renaming files
+* `FIX` circulation reference in process analysis
+ ```lua
+ ---@type number
+ local x
+
+ ---@type number
+ local y
+
+ x = y
+
+ y = x --> Can not infer `y` before
+ ```
+* `FIX` [#1698]
+* `FIX` [#1704]
+* `FIX` [#1717]
+
+[#1698]: https://github.com/LuaLS/lua-language-server/issues/1698
+[#1704]: https://github.com/LuaLS/lua-language-server/issues/1704
+[#1717]: https://github.com/LuaLS/lua-language-server/issues/1717
+
+## 3.6.3
+`2022-11-14`
+* `FIX` [#1684]
+* `FIX` [#1692]
+
+[#1684]: https://github.com/LuaLS/lua-language-server/issues/1684
+[#1692]: https://github.com/LuaLS/lua-language-server/issues/1692
+
+## 3.6.2
+`2022-11-10`
+* `FIX` incorrect type check for generic with nil
+* `FIX` [#1676]
+* `FIX` [#1677]
+* `FIX` [#1679]
+* `FIX` [#1680]
+
+[#1676]: https://github.com/LuaLS/lua-language-server/issues/1676
+[#1677]: https://github.com/LuaLS/lua-language-server/issues/1677
+[#1679]: https://github.com/LuaLS/lua-language-server/issues/1679
+[#1680]: https://github.com/LuaLS/lua-language-server/issues/1680
+
+## 3.6.1
+`2022-11-8`
+* `FIX` wrong diagnostics for `pcall` and `xpcall`
+* `FIX` duplicate fields in table hover
+* `FIX` description disapeared for overloaded function
+* `FIX` [#1675]
+
+[#1675]: https://github.com/LuaLS/lua-language-server/issues/1675
+
+## 3.6.0
+`2022-11-8`
+* `NEW` supports `private`/`protected`/`public`/`package`
+ * mark in `doc.field`
+ ```lua
+ ---@class unit
+ ---@field private uuid integer
+ ```
+ * mark with `---@private`, `---@protected`, `---@public` and `---@package`
+ ```lua
+ ---@class unit
+ local mt = {}
+
+ ---@private
+ function mt:init()
+ end
+
+ ---@protected
+ function mt:update()
+ end
+ ```
+ * mark by settings `Lua.doc.privateName`, `Lua.doc.protectedName` and `Lua.doc.packageName`
+ ```lua
+ ---@class unit
+ ---@field _uuid integer --> treat as private when `Lua.doc.privateName` has `"_*"`
+ ```
+* `NEW` settings:
+ * `Lua.misc.executablePath`: [#1557] specify the executable path in VSCode
+ * `Lua.diagnostics.workspaceEvent`: [#1626] set the time to trigger workspace diagnostics.
+ * `Lua.doc.privateName`: treat matched fields as private
+ * `Lua.doc.protectedName`: treat matched fields as protected
+ * `Lua.doc.packageName`: treat matched fields as package
+* `NEW` CLI `--doc [path]` to make docs.
+server will generate `doc.json` and `doc.md` in `LOGPATH`.
+`doc.md` is generated by `doc.json` by example code `script/cli/doc2md.lua`.
+* `CHG` [#1558] detect multi libraries
+* `CHG` [#1458] `semantic-tokens`: global variable is setted to `variable.global`
+ ```jsonc
+ // color global variables to red
+ "editor.semanticTokenColorCustomizations": {
+ "rules": {
+ "variable.global": "#ff0000"
+ }
+ }
+ ```
+* `CHG` [#1177] re-support for symlinks, users need to maintain the correctness of symlinks themselves
+* `CHG` [#1561] infer definitions and types across chain expression
+ ```lua
+ ---@class myClass
+ local myClass = {}
+
+ myClass.a.b.c.e.f.g = 1
+
+ ---@type myClass
+ local class
+
+ print(class.a.b.c.e.f.g) --> inferred as integer
+ ```
+* `CHG` [#1582] the following diagnostics consider `overload`
+ * `missing-return`
+ * `missing-return-value`
+ * `redundant-return-value`
+ * `return-type-mismatch`
+* `CHG` workspace-symbol: supports chain fields based on global variables and types. try `io.open` or `iolib.open`
+* `CHG` [#1641] if a function only has varargs and has `---@overload`, the varargs will be ignored
+* `CHG` [#1575] search definitions by first argument of `setmetatable`
+ ```lua
+ ---@class Object
+ local obj = setmetatable({
+ initValue = 1,
+ }, mt)
+
+ print(obj.initValue) --> `obj.initValue` is integer
+ ```
+* `CHG` [#1153] infer type by generic parameters or returns of function
+ ```lua
+ ---@generic T
+ ---@param f fun(x: T)
+ ---@return T[]
+ local function x(f) end
+
+ ---@type fun(x: integer)
+ local cb
+
+ local arr = x(cb) --> `arr` is inferred as `integer[]`
+ ```
+* `CHG` [#1201] infer parameter type by expected returned function of parent function
+ ```lua
+ ---@return fun(x: integer)
+ local function f()
+ return function (x) --> `x` is inferred as `integer`
+ end
+ end
+ ```
+* `CHG` [#1332] infer parameter type when function in table
+ ```lua
+ ---@class A
+ ---@field f fun(x: string)
+
+ ---@type A
+ local t = {
+ f = function (x) end --> `x` is inferred as `string`
+ }
+ ```
+* `CHG` find reference: respect `includeDeclaration` (although I don't know how to turn off this option in VSCode)
+* `CHG` [#1344] improve `---@see`
+* `CHG` [#1484] setting `runtime.special` supports fields
+ ```jsonc
+ {
+ "runtime.special": {
+ "sandbox.require": "require"
+ }
+ }
+ ```
+* `CHG` [#1533] supports completion with table field of function
+* `CHG` [#1457] infer parameter type by function type
+ ```lua
+ ---@type fun(x: number)
+ local function f(x) --> `x` is inferred as `number`
+ end
+ ```
+* `CHG` [#1663] check parameter types of generic extends
+ ```lua
+ ---@generic T: string | boolean
+ ---@param x T
+ ---@return T
+ local function f(x)
+ return x
+ end
+
+ local x = f(1) --> Warning: Cannot assign `integer` to parameter ``.
+ ```
+* `CHG` [#1434] type check: check the fields in table:
+ ```lua
+ ---@type table
+ local x
+
+ ---@type table
+ local y
+
+ x = y --> Warning: Cannot assign `` to ``
+ ```
+* `CHG` [#1374] type check: supports array part in literal table
+ ```lua
+ ---@type boolean[]
+ local t = { 1, 2, 3 } --> Warning: Cannot assign `integer` to `boolean`
+ ```
+* `CHG` `---@enum` supports runtime values
+* `FIX` [#1479]
+* `FIX` [#1480]
+* `FIX` [#1567]
+* `FIX` [#1593]
+* `FIX` [#1595]
+* `FIX` [#1599]
+* `FIX` [#1606]
+* `FIX` [#1608]
+* `FIX` [#1637]
+* `FIX` [#1640]
+* `FIX` [#1642]
+* `FIX` [#1662]
+* `FIX` [#1672]
+
+[#1153]: https://github.com/LuaLS/lua-language-server/issues/1153
+[#1177]: https://github.com/LuaLS/lua-language-server/issues/1177
+[#1201]: https://github.com/LuaLS/lua-language-server/issues/1201
+[#1202]: https://github.com/LuaLS/lua-language-server/issues/1202
+[#1332]: https://github.com/LuaLS/lua-language-server/issues/1332
+[#1344]: https://github.com/LuaLS/lua-language-server/issues/1344
+[#1374]: https://github.com/LuaLS/lua-language-server/issues/1374
+[#1434]: https://github.com/LuaLS/lua-language-server/issues/1434
+[#1457]: https://github.com/LuaLS/lua-language-server/issues/1457
+[#1458]: https://github.com/LuaLS/lua-language-server/issues/1458
+[#1479]: https://github.com/LuaLS/lua-language-server/issues/1479
+[#1480]: https://github.com/LuaLS/lua-language-server/issues/1480
+[#1484]: https://github.com/LuaLS/lua-language-server/issues/1484
+[#1533]: https://github.com/LuaLS/lua-language-server/issues/1533
+[#1557]: https://github.com/LuaLS/lua-language-server/issues/1557
+[#1558]: https://github.com/LuaLS/lua-language-server/issues/1558
+[#1561]: https://github.com/LuaLS/lua-language-server/issues/1561
+[#1567]: https://github.com/LuaLS/lua-language-server/issues/1567
+[#1575]: https://github.com/LuaLS/lua-language-server/issues/1575
+[#1582]: https://github.com/LuaLS/lua-language-server/issues/1582
+[#1593]: https://github.com/LuaLS/lua-language-server/issues/1593
+[#1595]: https://github.com/LuaLS/lua-language-server/issues/1595
+[#1599]: https://github.com/LuaLS/lua-language-server/issues/1599
+[#1606]: https://github.com/LuaLS/lua-language-server/issues/1606
+[#1608]: https://github.com/LuaLS/lua-language-server/issues/1608
+[#1626]: https://github.com/LuaLS/lua-language-server/issues/1626
+[#1637]: https://github.com/LuaLS/lua-language-server/issues/1637
+[#1640]: https://github.com/LuaLS/lua-language-server/issues/1640
+[#1641]: https://github.com/LuaLS/lua-language-server/issues/1641
+[#1642]: https://github.com/LuaLS/lua-language-server/issues/1642
+[#1662]: https://github.com/LuaLS/lua-language-server/issues/1662
+[#1663]: https://github.com/LuaLS/lua-language-server/issues/1663
+[#1670]: https://github.com/LuaLS/lua-language-server/issues/1670
+[#1672]: https://github.com/LuaLS/lua-language-server/issues/1672
+
+## 3.5.6
+`2022-9-16`
+* `FIX` [#1439](https://github.com/LuaLS/lua-language-server/issues/1439)
+* `FIX` [#1467](https://github.com/LuaLS/lua-language-server/issues/1467)
+* `FIX` [#1506](https://github.com/LuaLS/lua-language-server/issues/1506)
+* `FIX` [#1537](https://github.com/LuaLS/lua-language-server/issues/1537)
+
+## 3.5.5
+`2022-9-7`
+* `FIX` [#1529](https://github.com/LuaLS/lua-language-server/issues/1529)
+* `FIX` [#1530](https://github.com/LuaLS/lua-language-server/issues/1530)
+
+## 3.5.4
+`2022-9-6`
+* `NEW` `type-formatting`: fix wrong indentation of VSCode
+* `CHG` `document-symbol`: redesigned to better support for `Sticky Scroll` feature of VSCode
+* `FIX` `diagnostics.workspaceDelay` can not prevent first workspace diagnostic
+* `FIX` [#1476](https://github.com/LuaLS/lua-language-server/issues/1476)
+* `FIX` [#1490](https://github.com/LuaLS/lua-language-server/issues/1490)
+* `FIX` [#1493](https://github.com/LuaLS/lua-language-server/issues/1493)
+* `FIX` [#1499](https://github.com/LuaLS/lua-language-server/issues/1499)
+* `FIX` [#1526](https://github.com/LuaLS/lua-language-server/issues/1526)
+
+## 3.5.3
+`2022-8-13`
+* `FIX` [#1409](https://github.com/LuaLS/lua-language-server/issues/1409)
+* `FIX` [#1422](https://github.com/LuaLS/lua-language-server/issues/1422)
+* `FIX` [#1425](https://github.com/LuaLS/lua-language-server/issues/1425)
+* `FIX` [#1428](https://github.com/LuaLS/lua-language-server/issues/1428)
+* `FIX` [#1430](https://github.com/LuaLS/lua-language-server/issues/1430)
+* `FIX` [#1431](https://github.com/LuaLS/lua-language-server/issues/1431)
+* `FIX` [#1446](https://github.com/LuaLS/lua-language-server/issues/1446)
+* `FIX` [#1451](https://github.com/LuaLS/lua-language-server/issues/1451)
+* `FIX` [#1461](https://github.com/LuaLS/lua-language-server/issues/1461)
+* `FIX` [#1463](https://github.com/LuaLS/lua-language-server/issues/1463)
+
+## 3.5.2
+`2022-8-1`
+* `FIX` [#1395](https://github.com/LuaLS/lua-language-server/issues/1395)
+* `FIX` [#1403](https://github.com/LuaLS/lua-language-server/issues/1403)
+* `FIX` [#1405](https://github.com/LuaLS/lua-language-server/issues/1405)
+* `FIX` [#1406](https://github.com/LuaLS/lua-language-server/issues/1406)
+* `FIX` [#1418](https://github.com/LuaLS/lua-language-server/issues/1418)
+
+## 3.5.1
+`2022-7-26`
+* `NEW` supports [color](https://github.com/LuaLS/lua-language-server/pull/1379)
+* `NEW` setting `Lua.runtime.pluginArgs`
+* `CHG` setting `type.castNumberToInteger` default by `true`
+* `CHG` improve supports for multi-workspace
+* `FIX` [#1354](https://github.com/LuaLS/lua-language-server/issues/1354)
+* `FIX` [#1355](https://github.com/LuaLS/lua-language-server/issues/1355)
+* `FIX` [#1363](https://github.com/LuaLS/lua-language-server/issues/1363)
+* `FIX` [#1365](https://github.com/LuaLS/lua-language-server/issues/1365)
+* `FIX` [#1367](https://github.com/LuaLS/lua-language-server/issues/1367)
+* `FIX` [#1368](https://github.com/LuaLS/lua-language-server/issues/1368)
+* `FIX` [#1370](https://github.com/LuaLS/lua-language-server/issues/1370)
+* `FIX` [#1375](https://github.com/LuaLS/lua-language-server/issues/1375)
+* `FIX` [#1391](https://github.com/LuaLS/lua-language-server/issues/1391)
+
+## 3.5.0
+`2022-7-19`
+* `NEW` `LuaDoc`: `---@operator`:
+ ```lua
+ ---@class fspath
+ ---@operator div(string|fspath): fspath
+
+ ---@type fspath
+ local root
+
+ local fileName = root / 'script' / 'main.lua' -- `fileName` is `fspath` here
+ ```
+* `NEW` `LuaDoc`: `---@source`:
+ ```lua
+ -- Also supports absolute path or relative path (based on current file path)
+ ---@source file:///xxx.c:50:20
+ XXX = 1 -- when finding definitions of `XXX`, returns `file:///xxx.c:50:20` instead here.
+ ```
+* `NEW` `LuaDoc`: `---@enum`:
+ ```lua
+ ---@enum animal
+ Animal = {
+ Cat = 1,
+ Dog = 2,
+ }
+
+ ---@param x animal
+ local function f(x) end
+
+ f() -- suggests `Animal.Cat`, `Animal.Dog`, `1`, `2` as the first parameter
+ ```
+* `NEW` diagnostics:
+ * `unknown-operator`
+ * `unreachable-code`
+* `NEW` settings:
+ * `diagnostics.unusedLocalExclude`
+* `NEW` VSCode: add support for [EmmyLuaUnity](https://marketplace.visualstudio.com/items?itemName=CppCXY.emmylua-unity)
+* `CHG` support multi-type:
+ ```lua
+ ---@type number, _, boolean
+ local a, b, c -- `a` is `number`, `b` is `unknown`, `c` is `boolean`
+ ```
+* `CHG` treat `_ENV = XXX` as `local _ENV = XXX`
+ * `_ENV = nil`: disable all globals
+ * `_ENV = {}`: allow all globals
+ * `_ENV = {} ---@type mathlib`: only allow globals in `mathlib`
+* `CHG` hover: dose not show unknown `---@XXX` as description
+* `CHG` contravariance is allowed at the class declaration
+ ```lua
+ ---@class BaseClass
+ local BaseClass
+
+ ---@class MyClass: BaseClass
+ local MyClass = BaseClass -- OK!
+ ```
+* `CHG` hover: supports path in link
+ ```lua
+ -- --> will convert to `--`
+ local x
+ ```
+* `CHG` signature: only show signatures matching the entered parameters
+* `FIX` [#880](https://github.com/LuaLS/lua-language-server/issues/880)
+* `FIX` [#1284](https://github.com/LuaLS/lua-language-server/issues/1284)
+* `FIX` [#1292](https://github.com/LuaLS/lua-language-server/issues/1292)
+* `FIX` [#1294](https://github.com/LuaLS/lua-language-server/issues/1294)
+* `FIX` [#1306](https://github.com/LuaLS/lua-language-server/issues/1306)
+* `FIX` [#1311](https://github.com/LuaLS/lua-language-server/issues/1311)
+* `FIX` [#1317](https://github.com/LuaLS/lua-language-server/issues/1317)
+* `FIX` [#1320](https://github.com/LuaLS/lua-language-server/issues/1320)
+* `FIX` [#1330](https://github.com/LuaLS/lua-language-server/issues/1330)
+* `FIX` [#1345](https://github.com/LuaLS/lua-language-server/issues/1345)
+* `FIX` [#1346](https://github.com/LuaLS/lua-language-server/issues/1346)
+* `FIX` [#1348](https://github.com/LuaLS/lua-language-server/issues/1348)
+
+## 3.4.2
+`2022-7-6`
+* `CHG` diagnostic: `type-check` ignores `nil` in `getfield`
+* `CHG` diagnostic: `---@diagnostic disable: ` can suppress syntax errors
+* `CHG` completion: `completion.callSnippet` no longer generate parameter types
+* `CHG` hover: show `---@type {x: number, y: number}` as detail instead of `table`
+* `CHG` dose not infer as `nil` by `t.field = nil`
+* `FIX` [#1278](https://github.com/LuaLS/lua-language-server/issues/1278)
+* `FIX` [#1288](https://github.com/LuaLS/lua-language-server/issues/1288)
+
+## 3.4.1
+`2022-7-5`
+* `NEW` settings:
+ * `type.weakNilCheck`
+* `CHG` allow type contravariance for `setmetatable` when initializing a class
+ ```lua
+ ---@class A
+ local a = {}
+
+ ---@class B: A
+ local b = setmetatable({}, { __index = a }) -- OK!
+ ```
+* `FIX` [#1256](https://github.com/LuaLS/lua-language-server/issues/1256)
+* `FIX` [#1257](https://github.com/LuaLS/lua-language-server/issues/1257)
+* `FIX` [#1267](https://github.com/LuaLS/lua-language-server/issues/1267)
+* `FIX` [#1269](https://github.com/LuaLS/lua-language-server/issues/1269)
+* `FIX` [#1273](https://github.com/LuaLS/lua-language-server/issues/1273)
+* `FIX` [#1275](https://github.com/LuaLS/lua-language-server/issues/1275)
+* `FIX` [#1279](https://github.com/LuaLS/lua-language-server/issues/1279)
+
+## 3.4.0
+`2022-6-29`
+* `NEW` diagnostics:
+ * `cast-local-type`
+ * `assign-type-mismatch`
+ * `param-type-mismatch`
+ * `unknown-cast-variable`
+ * `cast-type-mismatch`
+ * `missing-return-value`
+ * `redundant-return-value`
+ * `missing-return`
+ * `return-type-mismatch`
+* `NEW` settings:
+ * `diagnostics.groupSeverity`
+ * `diagnostics.groupFileStatus`
+ * `type.castNumberToInteger`
+ * `type.weakUnionCheck`
+ * `hint.semicolon`
+* `CHG` infer `nil` as redundant return value
+ ```lua
+ local function f() end
+ local x = f() -- `x` is `nil` instead of `unknown`
+ ```
+* `CHG` infer called function by params num
+ ```lua
+ ---@overload fun(x: number, y: number):string
+ ---@overload fun(x: number):number
+ ---@return boolean
+ local function f() end
+
+ local n1 = f() -- `n1` is `boolean`
+ local n2 = f(0) -- `n2` is `number`
+ local n3 = f(0, 0) -- `n3` is `string`
+ ```
+* `CHG` semicolons and parentheses can be used in `DocTable`
+ ```lua
+ ---@type { (x: number); (y: boolean) }
+ ```
+* `CHG` return names and parentheses can be used in `DocFunction`
+ ```lua
+ ---@type fun():(x: number, y: number, ...: number)
+ ```
+* `CHG` supports `---@return boolean ...`
+* `CHG` improve experience for diagnostics and semantic-tokens
+* `FIX` diagnostics flash when opening a file
+* `FIX` sometimes workspace diagnostics are not triggered
+* `FIX` [#1228](https://github.com/LuaLS/lua-language-server/issues/1228)
+* `FIX` [#1229](https://github.com/LuaLS/lua-language-server/issues/1229)
+* `FIX` [#1242](https://github.com/LuaLS/lua-language-server/issues/1242)
+* `FIX` [#1243](https://github.com/LuaLS/lua-language-server/issues/1243)
+* `FIX` [#1249](https://github.com/LuaLS/lua-language-server/issues/1249)
+
+## 3.3.1
+`2022-6-17`
+* `FIX` [#1213](https://github.com/LuaLS/lua-language-server/issues/1213)
+* `FIX` [#1215](https://github.com/LuaLS/lua-language-server/issues/1215)
+* `FIX` [#1217](https://github.com/LuaLS/lua-language-server/issues/1217)
+* `FIX` [#1218](https://github.com/LuaLS/lua-language-server/issues/1218)
+* `FIX` [#1220](https://github.com/LuaLS/lua-language-server/issues/1220)
+* `FIX` [#1223](https://github.com/LuaLS/lua-language-server/issues/1223)
+
+## 3.3.0
+`2022-6-15`
+* `NEW` `LuaDoc` supports `` `CODE` ``
+ ```lua
+ ---@type `CONST.X` | `CONST.Y`
+ local x
+
+ if x == -- suggest `CONST.X` and `CONST.Y` here
+ ```
+* `CHG` infer type by `error`
+ ```lua
+ ---@type integer|nil
+ local n
+
+ if not n then
+ error('n is nil')
+ end
+
+ print(n) -- `n` is `integer` here
+ ```
+* `CHG` infer type by `t and t.x`
+ ```lua
+ ---@type table|nil
+ local t
+
+ local s = t and t.x or 1 -- `t` in `t.x` is `table`
+ ```
+* `CHG` infer type by `type(x)`
+ ```lua
+ local x
+
+ if type(x) == 'string' then
+ print(x) -- `x` is `string` here
+ end
+
+ local tp = type(x)
+
+ if tp == 'boolean' then
+ print(x) -- `x` is `boolean` here
+ end
+ ```
+* `CHG` infer type by `>`/`<`/`>=`/`<=`
+* `FIX` with clients that support LSP 3.17 (VSCode), workspace diagnostics are triggered every time when opening a file.
+* `FIX` [#1204](https://github.com/LuaLS/lua-language-server/issues/1204)
+* `FIX` [#1208](https://github.com/LuaLS/lua-language-server/issues/1208)
+
+## 3.2.5
+`2022-6-9`
+* `NEW` provide config docs in `LUA_LANGUAGE_SERVER/doc/`
+* `FIX` [#1148](https://github.com/LuaLS/lua-language-server/issues/1148)
+* `FIX` [#1149](https://github.com/LuaLS/lua-language-server/issues/1149)
+* `FIX` [#1192](https://github.com/LuaLS/lua-language-server/issues/1192)
+
+## 3.2.4
+`2022-5-25`
+* `NEW` settings:
+ + `workspace.supportScheme`: `["file", "untitled", "git"]`
+ + `diagnostics.disableScheme`: `["git"]`
+* `NEW` folding: support folding `---@alias`
+* `CHG` if `rootUri` or `workspaceFolder` is set to `ROOT` or `HOME`, this extension will refuse to load these directories and show an error message.
+* `CHG` show warning message when scanning more than 100,000 files.
+* `CHG` upgrade [LSP](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/) to `3.17`
+* `FIX` hover: can not union `table` with other basic types
+* `FIX` [#1125](https://github.com/LuaLS/lua-language-server/issues/1125)
+* `FIX` [#1131](https://github.com/LuaLS/lua-language-server/issues/1131)
+* `FIX` [#1134](https://github.com/LuaLS/lua-language-server/issues/1134)
+* `FIX` [#1141](https://github.com/LuaLS/lua-language-server/issues/1141)
+* `FIX` [#1144](https://github.com/LuaLS/lua-language-server/issues/1144)
+* `FIX` [#1150](https://github.com/LuaLS/lua-language-server/issues/1150)
+* `FIX` [#1155](https://github.com/LuaLS/lua-language-server/issues/1155)
+
+## 3.2.3
+`2022-5-16`
+* `CHG` parse `.luarc.json` as jsonc. In order to please the editor, it also supports `.luarc.jsonc` as the file name.
+* `CHG` dose not load files in symbol links
+* `FIX` memory leak with symbol links
+* `FIX` diagnostic: send empty results to every file after startup
+* `FIX` [#1103](https://github.com/LuaLS/lua-language-server/issues/1103)
+* `FIX` [#1107](https://github.com/LuaLS/lua-language-server/issues/1107)
+
+## 3.2.2
+`2022-4-26`
+* `FIX` diagnostic: `unused-function` cannot handle recursion correctly
+* `FIX` [#1092](https://github.com/LuaLS/lua-language-server/issues/1092)
+* `FIX` [#1093](https://github.com/LuaLS/lua-language-server/issues/1093)
+* `FIX` runtime errors reported by telemetry, see [#1091](https://github.com/LuaLS/lua-language-server/issues/1091)
+
+## 3.2.1
+`2022-4-25`
+* `FIX` broken in VSCode
+
+## 3.2.0
+`2022-4-25`
+* `NEW` supports infer of callback parameter
+ ```lua
+ ---@type string[]
+ local t
+
+ table.sort(t, function (a, b)
+ -- `a` and `b` is `string` here
+ end)
+ ```
+* `NEW` using `---@overload` as class constructor
+ ```lua
+ ---@class Class
+ ---@overload fun():Class
+ local mt
+
+ local x = mt() --> x is `Class` here
+ ```
+* `NEW` add `--[[@as type]]`
+ ```lua
+ local x = true
+ local y = x--[[@as integer]] -- y is `integer` here
+ ```
+* `NEW` add `---@cast`
+ * `---@cast localname type`
+ * `---@cast localname +type`
+ * `---@cast localname -type`
+ * `---@cast localname +?`
+ * `---@cast localname -?`
+* `NEW` generic: resolve `T[]` by `table` or `---@field [integer] type`
+* `NEW` resolve `class[1]` by `---@field [integer] type`
+* `NEW` diagnostic: `missing-parameter`
+* `NEW` diagnostic: `need-check-nil`
+* `CHG` diagnostic: no longer mark `redundant-parameter` as `Unnecessary`
+* `FIX` diagnostic: `unused-function` does not recognize recursion
+* `FIX` [#1051](https://github.com/LuaLS/lua-language-server/issues/1051)
+* `FIX` [#1072](https://github.com/LuaLS/lua-language-server/issues/1072)
+* `FIX` [#1077](https://github.com/LuaLS/lua-language-server/issues/1077)
+* `FIX` [#1088](https://github.com/LuaLS/lua-language-server/issues/1088)
+* `FIX` runtime errors
+
+## 3.1.0
+`2022-4-17`
+* `NEW` support find definition in method
+* `CHG` hint: move to LSP. Its font is now controlled by the client.
+* `CHG` hover: split `local` into `local` / `parameter` / `upvalue` / `self`.
+* `CHG` hover: added parentheses to some words, such as `global` / `field` / `class`.
+* `FIX` definition of `table`
+* `FIX` [#994](https://github.com/LuaLS/lua-language-server/issues/994)
+* `FIX` [#1057](https://github.com/LuaLS/lua-language-server/issues/1057)
+* `FIX` runtime errors reported by telemetry, see [#1058](https://github.com/LuaLS/lua-language-server/issues/1058)
+
+## 3.0.2
+`2022-4-15`
+* `FIX` `table[string] -> boolean`
+* `FIX` goto `type definition`
+* `FIX` [#1050](https://github.com/LuaLS/lua-language-server/issues/1050)
+
+## 3.0.1
+`2022-4-11`
+* `FIX` [#1033](https://github.com/LuaLS/lua-language-server/issues/1033)
+* `FIX` [#1034](https://github.com/LuaLS/lua-language-server/issues/1034)
+* `FIX` [#1035](https://github.com/LuaLS/lua-language-server/issues/1035)
+* `FIX` [#1036](https://github.com/LuaLS/lua-language-server/issues/1036)
+* `FIX` runtime errors reported by telemetry, see [#1037](https://github.com/LuaLS/lua-language-server/issues/1037)
+
+## 3.0.0
+`2022-4-10`
+* `CHG` [break changes](https://github.com/LuaLS/lua-language-server/issues/980)
+* `CHG` diagnostic:
+ + `type-check`: removed for now
+ + `no-implicit-any`: renamed to `no-unknown`
+* `CHG` formatter: no longer need` --preview`
+* `CHG` `LuaDoc`: supports `---@type (string|integer)[]`
+* `FIX` semantic: color of `function`
+* `FIX` [#1027](https://github.com/LuaLS/lua-language-server/issues/1027)
+* `FIX` [#1028](https://github.com/LuaLS/lua-language-server/issues/1028)
+
+## 2.6.8
+`2022-4-9`
+* `CHG` completion: call snippet shown as `Function` instead of `Snippet` when `Lua.completion.callSnippet` is `Replace`
+* `FIX` [#976](https://github.com/LuaLS/lua-language-server/issues/976)
+* `FIX` [#995](https://github.com/LuaLS/lua-language-server/issues/995)
+* `FIX` [#1004](https://github.com/LuaLS/lua-language-server/issues/1004)
+* `FIX` [#1008](https://github.com/LuaLS/lua-language-server/issues/1008)
+* `FIX` [#1009](https://github.com/LuaLS/lua-language-server/issues/1009)
+* `FIX` [#1011](https://github.com/LuaLS/lua-language-server/issues/1011)
+* `FIX` [#1014](https://github.com/LuaLS/lua-language-server/issues/1014)
+* `FIX` [#1016](https://github.com/LuaLS/lua-language-server/issues/1016)
+* `FIX` [#1017](https://github.com/LuaLS/lua-language-server/issues/1017)
+* `FIX` runtime errors reported by telemetry
+
+## 2.6.7
+`2022-3-9`
+* `NEW` diagnosis report, [read more](https://luals.github.io/wiki/diagnosis-report/)
+* `CHG` `VSCode`: 1.65 has built in new `Lua` syntax files, so this extension no longer provides syntax files, which means you can install other syntax extensions in the marketplace. If you have any suggestions or issues, please [open issues here](https://github.com/LuaLS/lua.tmbundle).
+* `CHG` telemetry: the prompt will only appear in VSCode to avoid repeated prompts in other platforms due to the inability to automatically modify the settings.
+* `FIX` [#965](https://github.com/LuaLS/lua-language-server/issues/965)
+* `FIX` [#975](https://github.com/LuaLS/lua-language-server/issues/975)
+
+## 2.6.6
+`2022-2-21`
+* `NEW` formatter preview, use `--preview` to enable this feature, [read more](https://github.com/LuaLS/lua-language-server/issues/960)
+* `FIX` [#958](https://github.com/LuaLS/lua-language-server/issues/958)
+* `FIX` runtime errors
+
+## 2.6.5
+`2022-2-17`
+* `FIX` telemetry is not disabled by default (since 2.6.0)
+* `FIX` [#934](https://github.com/LuaLS/lua-language-server/issues/934)
+* `FIX` [#952](https://github.com/LuaLS/lua-language-server/issues/952)
+
+## 2.6.4
+`2022-2-9`
+* `CHG` completion: reduced sorting priority for postfix completion
+* `FIX` [#936](https://github.com/LuaLS/lua-language-server/issues/936)
+* `FIX` [#937](https://github.com/LuaLS/lua-language-server/issues/937)
+* `FIX` [#940](https://github.com/LuaLS/lua-language-server/issues/940)
+* `FIX` [#941](https://github.com/LuaLS/lua-language-server/issues/941)
+* `FIX` [#941](https://github.com/LuaLS/lua-language-server/issues/942)
+* `FIX` [#943](https://github.com/LuaLS/lua-language-server/issues/943)
+* `FIX` [#946](https://github.com/LuaLS/lua-language-server/issues/946)
+
+## 2.6.3
+`2022-1-25`
+* `FIX` new files are not loaded correctly
+* `FIX` [#923](https://github.com/LuaLS/lua-language-server/issues/923)
+* `FIX` [#926](https://github.com/LuaLS/lua-language-server/issues/926)
+
+## 2.6.2
+`2022-1-25`
+* `FIX` [#925](https://github.com/LuaLS/lua-language-server/issues/925)
+
+## 2.6.1
+`2022-1-24`
+* `CHG` default values of settings:
+ + `Lua.diagnostics.workspaceDelay`: `0` sec -> `3` sec
+ + `Lua.workspace.maxPreload`: `1000` -> `5000`
+ + `Lua.workspace.preloadFileSize`: `100` KB -> `500` KB
+* `CHG` improve performance
+* `FIX` modify luarc failed
+* `FIX` library files not recognized correctly
+* `FIX` [#903](https://github.com/LuaLS/lua-language-server/issues/903)
+* `FIX` [#906](https://github.com/LuaLS/lua-language-server/issues/906)
+* `FIX` [#920](https://github.com/LuaLS/lua-language-server/issues/920)
+
+## 2.6.0
+`2022-1-13`
+* `NEW` supports multi-workspace in server side, for developers of language clients, please [read here](https://luals.github.io/wiki/developing/#multiple-workspace-support) to learn more.
+* `NEW` setting:
+ + `Lua.hint.arrayIndex`
+ + `Lua.semantic.enable`
+ + `Lua.semantic.variable`
+ + `Lua.semantic.annotation`
+ + `Lua.semantic.keyword`
+* `CHG` completion: improve response speed
+* `CHG` completion: can be triggered in `LuaDoc` and strings
+* `CHG` diagnostic: smoother
+* `CHG` settings `Lua.color.mode` removed
+* `FIX` [#876](https://github.com/LuaLS/lua-language-server/issues/876)
+* `FIX` [#879](https://github.com/LuaLS/lua-language-server/issues/879)
+* `FIX` [#884](https://github.com/LuaLS/lua-language-server/issues/884)
+* `FIX` [#885](https://github.com/LuaLS/lua-language-server/issues/885)
+* `FIX` [#886](https://github.com/LuaLS/lua-language-server/issues/886)
+* `FIX` [#902](https://github.com/LuaLS/lua-language-server/issues/902)
+
+## 2.5.6
+`2021-12-27`
+* `CHG` diagnostic: now syntax errors in `LuaDoc` are shown as `Warning`
+* `FIX` [#863](https://github.com/LuaLS/lua-language-server/issues/863)
+* `FIX` return type of `math.floor`
+* `FIX` runtime errors
+
+## 2.5.5
+`2021-12-16`
+* `FIX` dose not work in VSCode
+
+## 2.5.4
+`2021-12-16`
+* `FIX` [#847](https://github.com/LuaLS/lua-language-server/issues/847)
+* `FIX` [#848](https://github.com/LuaLS/lua-language-server/issues/848)
+* `FIX` completion: incorrect cache
+* `FIX` hover: always view string
+
+## 2.5.3
+`2021-12-6`
+* `FIX` [#842](https://github.com/LuaLS/lua-language-server/issues/844)
+* `FIX` [#844](https://github.com/LuaLS/lua-language-server/issues/844)
+
+## 2.5.2
+`2021-12-2`
+* `FIX` [#815](https://github.com/LuaLS/lua-language-server/issues/815)
+* `FIX` [#825](https://github.com/LuaLS/lua-language-server/issues/825)
+* `FIX` [#826](https://github.com/LuaLS/lua-language-server/issues/826)
+* `FIX` [#827](https://github.com/LuaLS/lua-language-server/issues/827)
+* `FIX` [#831](https://github.com/LuaLS/lua-language-server/issues/831)
+* `FIX` [#837](https://github.com/LuaLS/lua-language-server/issues/837)
+* `FIX` [#838](https://github.com/LuaLS/lua-language-server/issues/838)
+* `FIX` postfix
+* `FIX` runtime errors
+
+## 2.5.1
+`2021-11-29`
+* `FIX` incorrect syntax error
+
+## 2.5.0
+`2021-11-29`
+* `NEW` settings:
+ + `Lua.runtime.pathStrict`: not check subdirectories when using `runtime.path`
+ + `Lua.hint.await`: display `await` when calling a function marked as async
+ + `Lua.completion.postfix`: the symbol that triggers postfix, default is `@`
+* `NEW` add supports for `lovr`
+* `NEW` file encoding supports `utf16le` and `utf16be`
+* `NEW` full IntelliSense supports for literal tables, see [#720](https://github.com/LuaLS/lua-language-server/issues/720) and [#727](https://github.com/LuaLS/lua-language-server/issues/727)
+* `NEW` `LuaDoc` annotations:
+ + `---@async`: mark a function as async
+ + `---@nodiscard`: the return value of the marking function cannot be discarded
+* `NEW` diagnostics:
+ + `await-in-sync`: check whether calls async function in sync function. disabled by default.
+ + `not-yieldable`: check whether the function supports async functions as parameters. disabled by default.
+ + `discard-returns`: check whether the return value is discarded.
+* `NEW` locale `pt-br`, thanks [Jeferson Ferreira](https://github.com/jefersonf)
+* `NEW` supports [utf-8-offsets](https://clangd.llvm.org/extensions#utf-8-offsets)
+* `NEW` supports quickfix for `.luarc.json`
+* `NEW` completion postifx: `@function`, `@method`, `@pcall`, `@xpcall`, `@insert`, `@remove`, `@concat`, `++`, `++?`
+* `CHG` `LuaDoc`:
+ + `---@class` can be re-declared
+ + supports unicode
+ + supports `---@param ... number`, equivalent to `---@vararg number`
+ + supports `fun(...: string)`
+ + supports `fun(x, y, ...)`, equivalent to `fun(x: any, y: any, ...: any)`
+* `CHG` settings from `--configpath`, `.luarc.json`, `client` no longer prevent subsequent settings, instead they are merged in order
+* `CHG` no longer asks to trust plugin in VSCode, because VSCode already provides the workspace trust feature
+* `CHG` skip huge files (>= 10 MB)
+* `CHG` after using `Lua.runtime.nonstandardSymbol` to treat `//` as a comment, `//` is no longer parsed as an operator
+
+## 2.4.11
+`2021-11-25`
+* `FIX` [#816](https://github.com/LuaLS/lua-language-server/issues/816)
+* `FIX` [#817](https://github.com/LuaLS/lua-language-server/issues/817)
+* `FIX` [#818](https://github.com/LuaLS/lua-language-server/issues/818)
+* `FIX` [#820](https://github.com/LuaLS/lua-language-server/issues/820)
+
+## 2.4.10
+`2021-11-23`
+* `FIX` [#790](https://github.com/LuaLS/lua-language-server/issues/790)
+* `FIX` [#798](https://github.com/LuaLS/lua-language-server/issues/798)
+* `FIX` [#804](https://github.com/LuaLS/lua-language-server/issues/804)
+* `FIX` [#805](https://github.com/LuaLS/lua-language-server/issues/805)
+* `FIX` [#806](https://github.com/LuaLS/lua-language-server/issues/806)
+* `FIX` [#807](https://github.com/LuaLS/lua-language-server/issues/807)
+* `FIX` [#809](https://github.com/LuaLS/lua-language-server/issues/809)
+
+## 2.4.9
+`2021-11-18`
+* `CHG` for performance reasons, some of the features that are not cost-effective in IntelliSense have been disabled by default, and you can re-enable them through the following settings:
+ + `Lua.IntelliSense.traceLocalSet`
+ + `Lua.IntelliSense.traceReturn`
+ + `Lua.IntelliSense.traceBeSetted`
+ + `Lua.IntelliSense.traceFieldInject`
+
+ [read more](https://github.com/LuaLS/lua-language-server/wiki/IntelliSense-optional-features)
+
+## 2.4.8
+`2021-11-15`
+* `FIX` incorrect IntelliSense in specific situations
+* `FIX` [#777](https://github.com/LuaLS/lua-language-server/issues/777)
+* `FIX` [#778](https://github.com/LuaLS/lua-language-server/issues/778)
+* `FIX` [#779](https://github.com/LuaLS/lua-language-server/issues/779)
+* `FIX` [#780](https://github.com/LuaLS/lua-language-server/issues/780)
+
+## 2.4.7
+`2021-10-27`
+* `FIX` [#762](https://github.com/LuaLS/lua-language-server/issues/762)
+
+## 2.4.6
+`2021-10-26`
+* `NEW` diagnostic: `redundant-return`
+* `FIX` [#744](https://github.com/LuaLS/lua-language-server/issues/744)
+* `FIX` [#748](https://github.com/LuaLS/lua-language-server/issues/748)
+* `FIX` [#749](https://github.com/LuaLS/lua-language-server/issues/749)
+* `FIX` [#752](https://github.com/LuaLS/lua-language-server/issues/752)
+* `FIX` [#753](https://github.com/LuaLS/lua-language-server/issues/753)
+* `FIX` [#756](https://github.com/LuaLS/lua-language-server/issues/756)
+* `FIX` [#758](https://github.com/LuaLS/lua-language-server/issues/758)
+* `FIX` [#760](https://github.com/LuaLS/lua-language-server/issues/760)
+
+## 2.4.5
+`2021-10-18`
+* `FIX` accidentally load lua files from user workspace
+
+## 2.4.4
+`2021-10-15`
+* `CHG` improve `.luarc.json`
+* `FIX` [#722](https://github.com/LuaLS/lua-language-server/issues/722)
+
+## 2.4.3
+`2021-10-13`
+* `FIX` [#713](https://github.com/LuaLS/lua-language-server/issues/713)
+* `FIX` [#718](https://github.com/LuaLS/lua-language-server/issues/718)
+* `FIX` [#719](https://github.com/LuaLS/lua-language-server/issues/719)
+* `FIX` [#725](https://github.com/LuaLS/lua-language-server/issues/725)
+* `FIX` [#729](https://github.com/LuaLS/lua-language-server/issues/729)
+* `FIX` [#730](https://github.com/LuaLS/lua-language-server/issues/730)
+* `FIX` runtime errors
+
+## 2.4.2
+`2021-10-8`
+* `FIX` [#702](https://github.com/LuaLS/lua-language-server/issues/702)
+* `FIX` [#706](https://github.com/LuaLS/lua-language-server/issues/706)
+* `FIX` [#707](https://github.com/LuaLS/lua-language-server/issues/707)
+* `FIX` [#709](https://github.com/LuaLS/lua-language-server/issues/709)
+* `FIX` [#712](https://github.com/LuaLS/lua-language-server/issues/712)
+
+## 2.4.1
+`2021-10-2`
+* `FIX` broken with single file
+* `FIX` [#698](https://github.com/LuaLS/lua-language-server/issues/698)
+* `FIX` [#699](https://github.com/LuaLS/lua-language-server/issues/699)
+
+## 2.4.0
+`2021-10-1`
+* `NEW` loading settings from `.luarc.json`
+* `NEW` settings:
+ + `Lua.diagnostics.libraryFiles`
+ + `Lua.diagnostics.ignoredFiles`
+ + `Lua.completion.showWord`
+ + `Lua.completion.requireSeparator`
+* `NEW` diagnostics:
+ + `different-requires`
+* `NEW` `---@CustomClass`
+* `NEW` supports `$/cancelRequest`
+* `NEW` `EventEmitter`
+ ```lua
+ --- @class Emit
+ --- @field on fun(eventName: string, cb: function)
+ --- @field on fun(eventName: '"died"', cb: fun(i: integer))
+ --- @field on fun(eventName: '"won"', cb: fun(s: string))
+ local emit = {}
+
+ emit:on(--[[support autocomplete fr "died" and "won"]])
+
+ emit:on("died", function (i)
+ -- should be i: integer
+ end)
+
+ emit:on('won', function (s)
+ -- should be s: string
+ end)
+ ```
+* `NEW` `---@module 'moduleName'`
+ ```lua
+ ---@module 'mylib'
+ local lib -- the same as `local lib = require 'mylib'`
+ ```
+* `NEW` add supports of `skynet`
+* `CHG` hover: improve showing multi defines
+* `CHG` hover: improve showing multi comments at enums
+* `CHG` hover: shows method
+* `CHG` hint: `Lua.hint.paramName` now supports `Disable`, `Literal` and `All`
+* `CHG` only search first file by `require`
+* `CHG` no longer infer by usage
+* `CHG` no longer ignore file names case in Windows
+* `CHG` watching library changes
+* `CHG` completion: improve misspelling results
+* `CHG` completion: `Lua.completion.displayContext` default to `0`
+* `CHG` completion: `autoRequire` has better inserting position
+* `CHG` diagnostics:
+ + `redundant-parameter` default severity to `Warning`
+ + `redundant-value` default severity to `Warning`
+* `CHG` infer: more strict of calculation results
+* `CHG` [#663](https://github.com/LuaLS/lua-language-server/issues/663)
+* `FIX` runtime errors
+* `FIX` hint: may show param-2 as `self`
+* `FIX` semantic: may fail when scrolling
+* `FIX` [#647](https://github.com/LuaLS/lua-language-server/issues/647)
+* `FIX` [#660](https://github.com/LuaLS/lua-language-server/issues/660)
+* `FIX` [#673](https://github.com/LuaLS/lua-language-server/issues/673)
+
+## 2.3.7
+`2021-8-17`
+* `CHG` improve performance
+* `FIX` [#244](https://github.com/LuaLS/lua-language-server/issues/244)
+
+## 2.3.6
+`2021-8-9`
+* `FIX` completion: can not find global fields
+* `FIX` globals and class may lost
+
+## 2.3.5
+`2021-8-9`
+* `CHG` improve memory usage
+* `CHG` completion: call snip triggers signature (VSCode only)
+* `FIX` completion: may not find results
+
+## 2.3.4
+`2021-8-6`
+* `CHG` improve performance
+* `FIX` [#625](https://github.com/LuaLS/lua-language-server/issues/625)
+
+## 2.3.3
+`2021-7-26`
+* `NEW` config supports prop
+* `FIX` [#612](https://github.com/LuaLS/lua-language-server/issues/612)
+* `FIX` [#613](https://github.com/LuaLS/lua-language-server/issues/613)
+* `FIX` [#618](https://github.com/LuaLS/lua-language-server/issues/618)
+* `FIX` [#620](https://github.com/LuaLS/lua-language-server/issues/620)
+
+## 2.3.2
+`2021-7-21`
+* `NEW` `LuaDoc`: supports `['string']` as field:
+ ```lua
+ ---@class keyboard
+ ---@field ['!'] number
+ ---@field ['?'] number
+ ---@field ['#'] number
+ ```
+* `NEW` add supports of `love2d`
+* `FIX` gitignore pattern `\` broken initialization
+* `FIX` runtime errors
+
+## 2.3.1
+`2021-7-19`
+* `NEW` setting `Lua.workspace.userThirdParty`, add private user [third-parth](https://github.com/LuaLS/lua-language-server/tree/master/meta/3rd) by this setting
+* `CHG` path in config supports `~/xxxx`
+* `FIX` `autoRequire` inserted incorrect code
+* `FIX` `autoRequire` may provide dumplicated options
+* `FIX` [#606](https://github.com/LuaLS/lua-language-server/issues/606)
+* `FIX` [#607](https://github.com/LuaLS/lua-language-server/issues/607)
+
+## 2.3.0
+`2021-7-16`
+* `NEW` `VSCode`: click the status bar icon to operate:
+ * run workspace diagnostics
+* `NEW` `LuaDoc`: supports `[1]` as field:
+ ```lua
+ ---@class position
+ ---@field [1] number
+ ---@field [2] number
+ ---@field [3] number
+ ```
+* `NEW` hover: view array `local array = {'a', 'b', 'c'}`:
+ ```lua
+ local array: {
+ [1]: string = "a",
+ [2]: string = "b",
+ [3]: string = "c",
+ }
+ ```
+* `NEW` completion: supports enums in `fun()`
+ ```lua
+ ---@type fun(x: "'aaa'"|"'bbb'")
+ local f
+
+ f(--[[show `'aaa'` and `'bbb'` here]])
+ ```
+* `FIX` loading workspace may hang
+* `FIX` `debug.getuservalue` and `debug.setuservalue` should not exist in `Lua 5.1`
+* `FIX` infer of `---@type class[][]`
+* `FIX` infer of `---@type {}[]`
+* `FIX` completion: displaying `@fenv` in `Lua 5.1`
+* `FIX` completion: incorrect at end of line
+* `FIX` when a file is renamed, the file will still be loaded even if the new file name has been set to ignore
+* `FIX` [#596](https://github.com/LuaLS/lua-language-server/issues/596)
+* `FIX` [#597](https://github.com/LuaLS/lua-language-server/issues/597)
+* `FIX` [#598](https://github.com/LuaLS/lua-language-server/issues/598)
+* `FIX` [#601](https://github.com/LuaLS/lua-language-server/issues/601)
+
+## 2.2.3
+`2021-7-9`
+* `CHG` improve `auto require`
+* `CHG` will not sleep anymore
+* `FIX` incorrect doc: `debug.getlocal`
+* `FIX` completion: incorrect callback
+* `FIX` [#592](https://github.com/LuaLS/lua-language-server/issues/592)
+
+## 2.2.2
+`2021-7-9`
+* `FIX` incorrect syntax color
+* `FIX` incorrect type infer
+
+## 2.2.1
+`2021-7-8`
+* `FIX` change setting may failed
+
+## 2.2.0
+`2021-7-8`
+* `NEW` detect and apply third-party libraries, including:
+ * OpenResty
+ * Cocos4.0
+ * Jass
+* `NEW` `LuaDoc`: supports literal table:
+ ```lua
+ ---@generic T
+ ---@param x T
+ ---@return { x: number, y: T, z?: boolean}
+ local function f(x) end
+
+ local t = f('str')
+ -- hovering "t" shows:
+ local t: {
+ x: number,
+ y: string,
+ z?: boolean,
+ }
+ ```
+* `CHG` improve changing config from server side
+* `CHG` improve hover color
+* `CHG` improve performance
+* `CHG` telemetry: sends version of this extension
+* `FIX` supports for file with LF
+* `FIX` may infer a custom class as a string
+
+## 2.1.0
+`2021-7-2`
+* `NEW` supports local config file, using `--configpath="config.json"`, [learn more here](https://luals.github.io/wiki/usage/#--configpath)
+* `NEW` goto `type definition`
+* `NEW` infer type by callback param:
+ ```lua
+ ---@param callback fun(value: string)
+ local function work(callback)
+ end
+
+ work(function (value)
+ -- value is string here
+ end)
+ ```
+* `NEW` optional field `---@field name? type`
+* `CHG` [#549](https://github.com/LuaLS/lua-language-server/issues/549)
+* `CHG` diagnostics: always ignore the ignored files even if they are opened
+* `FIX` completion: `type() ==` may does not work
+
+## 2.0.5
+`2021-7-1`
+* `NEW` `hover` and `completion` reports initialization progress
+* `CHG` `class field` consider implicit definition
+ ```lua
+ ---@class Class
+ local mt = {}
+
+ function mt:init()
+ self.xxx = 1
+ end
+
+ function mt:func()
+ print(self.xxx) -- self.xxx is defined
+ end
+ ```
+* `CHG` improve performance
+* `FIX` [#580](https://github.com/LuaLS/lua-language-server/issues/580)
+
+## 2.0.4
+`2021-6-25`
+* `FIX` [#550](https://github.com/LuaLS/lua-language-server/issues/550)
+* `FIX` [#555](https://github.com/LuaLS/lua-language-server/issues/555)
+* `FIX` [#574](https://github.com/LuaLS/lua-language-server/issues/574)
+
+## 2.0.3
+`2021-6-24`
+* `CHG` improve memory usage
+* `FIX` some dialog boxes block the initialization process
+* `FIX` diagnostics `undefined-field`: blocks main thread
+* `FIX` [#565](https://github.com/LuaLS/lua-language-server/issues/565)
+
+## 2.0.2
+`2021-6-23`
+* `NEW` supports literal table in `pairs`
+ ```lua
+ local t = { a = 1, b = 2, c = 3 }
+ for k, v in pairs(t) do
+ -- `k` is string and `v` is integer here
+ end
+ ```
+* `CHG` view `local f ---@type fun(x:number):boolean`
+ ```lua
+ ---before
+ function f(x: number)
+ -> boolean
+ ---after
+ local f: fun(x: number): boolean
+ ```
+* `FIX` [#558](https://github.com/LuaLS/lua-language-server/issues/558)
+* `FIX` [#567](https://github.com/LuaLS/lua-language-server/issues/567)
+* `FIX` [#568](https://github.com/LuaLS/lua-language-server/issues/568)
+* `FIX` [#570](https://github.com/LuaLS/lua-language-server/issues/570)
+* `FIX` [#571](https://github.com/LuaLS/lua-language-server/issues/571)
+
+## 2.0.1
+`2021-6-21`
+* `FIX` [#566](https://github.com/LuaLS/lua-language-server/issues/566)
+
+## 2.0.0
+`2021-6-21`
+* `NEW` implement
+* `CHG` diagnostics `undefined-field`, `deprecated`: default by `Opened` instead of `None`
+* `CHG` setting `Lua.runtime.plugin`: default by `""` instead of `".vscode/lua/plugin.lua"` (for security)
+* `CHG` setting `Lua.intelliSense.searchDepth`: removed
+* `CHG` setting `Lua.misc.parameters`: `string array` instead of `string`
+* `CHG` setting `Lua.develop.enable`, `Lua.develop.debuggerPort`, `Lua.develop.debuggerWait`: removed, use `Lua.misc.parameters` instead
+* `FIX` [#441](https://github.com/LuaLS/lua-language-server/issues/441)
+* `FIX` [#493](https://github.com/LuaLS/lua-language-server/issues/493)
+* `FIX` [#531](https://github.com/LuaLS/lua-language-server/issues/531)
+* `FIX` [#542](https://github.com/LuaLS/lua-language-server/issues/542)
+* `FIX` [#543](https://github.com/LuaLS/lua-language-server/issues/543)
+* `FIX` [#553](https://github.com/LuaLS/lua-language-server/issues/553)
+* `FIX` [#562](https://github.com/LuaLS/lua-language-server/issues/562)
+* `FIX` [#563](https://github.com/LuaLS/lua-language-server/issues/563)
+
+## 1.21.3
+`2021-6-17`
+* `NEW` supports `untrusted workspaces`
+* `FIX` performance issues, thanks to [folke](https://github.com/folke)
+
+## 1.21.2
+`2021-5-18`
+* `FIX` loaded new file with ignored filename
+* `FIX` [#536](https://github.com/LuaLS/lua-language-server/issues/536)
+* `FIX` [#537](https://github.com/LuaLS/lua-language-server/issues/537)
+* `FIX` [#538](https://github.com/LuaLS/lua-language-server/issues/538)
+* `FIX` [#539](https://github.com/LuaLS/lua-language-server/issues/539)
+
+## 1.21.1
+`2021-5-8`
+* `FIX` [#529](https://github.com/LuaLS/lua-language-server/issues/529)
+
+## 1.21.0
+`2021-5-7`
+* `NEW` setting: `completion.showParams`
+* `NEW` `LuaDoc`: supports multiline comments
+* `NEW` `LuaDoc`: tail comments support lua string
+
+## 1.20.5
+`2021-4-30`
+* `NEW` setting: `completion.autoRequire`
+* `NEW` setting: `hover.enumsLimit`
+* `CHG` folding: supports `-- #region`
+* `FIX` completion: details may be suspended
+* `FIX` [#522](https://github.com/LuaLS/lua-language-server/issues/522)
+* `FIX` [#523](https://github.com/LuaLS/lua-language-server/issues/523)
+
+## 1.20.4
+`2021-4-13`
+* `NEW` diagnostic: `deprecated`
+* `FIX` [#464](https://github.com/LuaLS/lua-language-server/issues/464)
+* `FIX` [#497](https://github.com/LuaLS/lua-language-server/issues/497)
+* `FIX` [#502](https://github.com/LuaLS/lua-language-server/issues/502)
+
+## 1.20.3
+`2021-4-6`
+* `FIX` [#479](https://github.com/LuaLS/lua-language-server/issues/479)
+* `FIX` [#483](https://github.com/LuaLS/lua-language-server/issues/483)
+* `FIX` [#485](https://github.com/LuaLS/lua-language-server/issues/485)
+* `FIX` [#487](https://github.com/LuaLS/lua-language-server/issues/487)
+* `FIX` [#488](https://github.com/LuaLS/lua-language-server/issues/488)
+* `FIX` [#490](https://github.com/LuaLS/lua-language-server/issues/490)
+* `FIX` [#495](https://github.com/LuaLS/lua-language-server/issues/495)
+
+## 1.20.2
+`2021-4-2`
+* `CHG` `LuaDoc`: supports `---@param self TYPE`
+* `CHG` completion: does not show suggests after `\n`, `{` and `,`, unless your setting `editor.acceptSuggestionOnEnter` is `off`
+* `FIX` [#482](https://github.com/LuaLS/lua-language-server/issues/482)
+
+## 1.20.1
+`2021-3-27`
+* `FIX` telemetry window blocks initializing
+* `FIX` [#468](https://github.com/LuaLS/lua-language-server/issues/468)
+
+## 1.20.0
+`2021-3-27`
+* `CHG` telemetry: change to opt-in, see [#462](https://github.com/LuaLS/lua-language-server/issues/462) and [Privacy-Policy](https://luals.github.io/privacy/#language-server)
+* `FIX` [#467](https://github.com/LuaLS/lua-language-server/issues/467)
+
+## 1.19.1
+`2021-3-22`
+* `CHG` improve performance
+* `FIX` [#457](https://github.com/LuaLS/lua-language-server/issues/457)
+* `FIX` [#458](https://github.com/LuaLS/lua-language-server/issues/458)
+
+## 1.19.0
+`2021-3-18`
+* `NEW` VSCode: new setting `Lua.misc.parameters`
+* `NEW` new setting `Lua.runtime.builtin`, used to disable some built-in libraries
+* `NEW` quick fix: disable diagnostic in line/file
+* `NEW` setting: `Lua.runtime.path` supports absolute path
+* `NEW` completion: field in table
+```lua
+---@class A
+---@field x number
+---@field y number
+---@field z number
+
+---@type A
+local t = {
+ -- provide `x`, `y` and `z` here
+}
+```
+* `NEW` `LuaDoc`: supports multi-line comment before resume
+```lua
+---this is
+---a multi line
+---comment
+---@alias XXXX
+---comment 1
+---comment 1
+---| '1'
+---comment 2
+---comment 2
+---| '2'
+
+---@param x XXXX
+local function f(x)
+end
+
+f( -- view comments of `1` and `2` in completion
+```
+* `CHG` intelli-scense: search from generic param to return
+* `CHG` intelli-scense: search across vararg
+* `CHG` text-document-synchronization: refactored
+* `CHG` diagnostic: improve `newline-call`
+* `CHG` completion: improve `then .. end`
+* `CHG` improve initialization speed
+* `CHG` improve performance
+* `FIX` missed syntax error `function m['x']() end`
+* `FIX` [#452](https://github.com/LuaLS/lua-language-server/issues/452)
+
+## 1.18.1
+`2021-3-10`
+* `CHG` semantic-tokens: improve colors of `const` and `close`
+* `CHG` type-formating: improve execution conditions
+* `FIX` [#444](https://github.com/LuaLS/lua-language-server/issues/444)
+
+## 1.18.0
+`2021-3-9`
+* `NEW` `LuaDoc`: supports `---@diagnostic disable`
+* `NEW` code-action: convert JSON to Lua
+* `NEW` completion: provide `then .. end` snippet
+* `NEW` type-formating:
+ ```lua
+ -- press `enter` at $
+ local function f() $ end
+ -- formating result:
+ local function f()
+ $
+ end
+
+ -- as well as
+ do $ end
+ -- formating result
+ do
+ $
+ end
+ ```
+* `CHG` `Windows`: dose not provide `ucrt` any more
+* `CHG` `Lua.workspace.library`: use `path[]` instead of ``
+* `FIX` missed syntax error `local a = 1`
+* `FIX` workspace: preload blocked when hitting `Lua.workspace.maxPreload`
+* `FIX` [#443](https://github.com/LuaLS/lua-language-server/issues/443)
+* `FIX` [#445](https://github.com/LuaLS/lua-language-server/issues/445)
+
+## 1.17.4
+`2021-3-4`
+* `FIX` [#437](https://github.com/LuaLS/lua-language-server/issues/437) again
+* `FIX` [#438](https://github.com/LuaLS/lua-language-server/issues/438)
+
+## 1.17.3
+`2021-3-3`
+* `CHG` intelli-scense: treat `V[]` as `table` in `pairs`
+* `FIX` completion: `detail` disappears during continuous input
+* `FIX` [#435](https://github.com/LuaLS/lua-language-server/issues/435)
+* `FIX` [#436](https://github.com/LuaLS/lua-language-server/issues/436)
+* `FIX` [#437](https://github.com/LuaLS/lua-language-server/issues/437)
+
+## 1.17.2
+`2021-3-2`
+* `FIX` running in Windows
+
+## 1.17.1
+`2021-3-1`
+* `CHG` intelli-scense: improve infer across `table` and `V[]`.
+* `CHG` intelli-scense: improve infer across `pairs` and `ipairs`
+* `FIX` hover: shows nothing when hovering unknown function
+* `FIX` [#398](https://github.com/LuaLS/lua-language-server/issues/398)
+* `FIX` [#421](https://github.com/LuaLS/lua-language-server/issues/421)
+* `FIX` [#422](https://github.com/LuaLS/lua-language-server/issues/422)
+
+## 1.17.0
+`2021-2-24`
+* `NEW` diagnostic: `duplicate-set-field`
+* `NEW` diagnostic: `no-implicit-any`, disabled by default
+* `CHG` completion: improve field and table
+* `CHG` improve infer cross `ipairs`
+* `CHG` cache globals when loading
+* `CHG` completion: remove trigger character `\n` for now, see [#401](https://github.com/LuaLS/lua-language-server/issues/401)
+* `FIX` diagnositc: may open file with wrong uri case
+* `FIX` [#406](https://github.com/LuaLS/lua-language-server/issues/406)
+
+## 1.16.1
+`2021-2-22`
+* `FIX` signature: parameters may be misplaced
+* `FIX` completion: interface in nested table
+* `FIX` completion: interface not show after `,`
+* `FIX` [#400](https://github.com/LuaLS/lua-language-server/issues/400)
+* `FIX` [#402](https://github.com/LuaLS/lua-language-server/issues/402)
+* `FIX` [#403](https://github.com/LuaLS/lua-language-server/issues/403)
+* `FIX` [#404](https://github.com/LuaLS/lua-language-server/issues/404)
+* `FIX` runtime errors
+
+## 1.16.0
+`2021-2-20`
+* `NEW` file encoding supports `ansi`
+* `NEW` completion: supports interface, see [#384](https://github.com/LuaLS/lua-language-server/issues/384)
+* `NEW` `LuaDoc`: supports multiple class inheritance: `---@class Food: Burger, Pizza, Pie, Pasta`
+* `CHG` rename `table*` to `tablelib`
+* `CHG` `LuaDoc`: revert compatible with `--@`, see [#392](https://github.com/LuaLS/lua-language-server/issues/392)
+* `CHG` improve performance
+* `FIX` missed syntax error `f() = 1`
+* `FIX` missed global `bit` in `LuaJIT`
+* `FIX` completion: may insert error text when continuous inputing
+* `FIX` completion: may insert error text after resolve
+* `FIX` [#349](https://github.com/LuaLS/lua-language-server/issues/349)
+* `FIX` [#396](https://github.com/LuaLS/lua-language-server/issues/396)
+
+## 1.15.1
+`2021-2-18`
+* `CHG` diagnostic: `unused-local` excludes `doc.param`
+* `CHG` definition: excludes values, see [#391](https://github.com/LuaLS/lua-language-server/issues/391)
+* `FIX` not works on Linux and macOS
+
+## 1.15.0
+`2021-2-9`
+* `NEW` LUNAR YEAR, BE HAPPY!
+* `CHG` diagnostic: when there are too many errors, the main errors will be displayed first
+* `CHG` main thread no longer loop sleeps, see [#329](https://github.com/LuaLS/lua-language-server/issues/329) [#386](https://github.com/LuaLS/lua-language-server/issues/386)
+* `CHG` improve performance
+
+## 1.14.3
+`2021-2-8`
+* `CHG` hint: disabled by default, see [#380](https://github.com/LuaLS/lua-language-server/issues/380)
+* `FIX` [#381](https://github.com/LuaLS/lua-language-server/issues/381)
+* `FIX` [#382](https://github.com/LuaLS/lua-language-server/issues/382)
+* `FIX` [#388](https://github.com/LuaLS/lua-language-server/issues/388)
+
+## 1.14.2
+`2021-2-4`
+* `FIX` [#356](https://github.com/LuaLS/lua-language-server/issues/356)
+* `FIX` [#375](https://github.com/LuaLS/lua-language-server/issues/375)
+* `FIX` [#376](https://github.com/LuaLS/lua-language-server/issues/376)
+* `FIX` [#377](https://github.com/LuaLS/lua-language-server/issues/377)
+* `FIX` [#378](https://github.com/LuaLS/lua-language-server/issues/378)
+* `FIX` [#379](https://github.com/LuaLS/lua-language-server/issues/379)
+* `FIX` a lot of runtime errors
+
+## 1.14.1
+`2021-2-2`
+* `FIX` [#372](https://github.com/LuaLS/lua-language-server/issues/372)
+
+## 1.14.0
+`2021-2-2`
+* `NEW` `VSCode` hint
+* `NEW` flush cache after 5 min
+* `NEW` `VSCode` help semantic color with market theme
+* `CHG` create/delete/rename files no longer reload workspace
+* `CHG` `LuaDoc`: compatible with `--@`
+* `FIX` `VSCode` settings
+* `FIX` [#368](https://github.com/LuaLS/lua-language-server/issues/368)
+* `FIX` [#371](https://github.com/LuaLS/lua-language-server/issues/371)
+
+## 1.13.0
+`2021-1-28`
+* `NEW` `VSCode` status bar
+* `NEW` `VSCode` options in some window
+* `CHG` performance optimization
+* `FIX` endless loop
+
+## 1.12.2
+`2021-1-27`
+* `CHG` performance optimization
+* `FIX` modifying the code before loading finish makes confusion
+* `FIX` signature: not works
+
+## 1.12.1
+`2021-1-27`
+* `FIX` endless loop
+
+## 1.12.0
+`2021-1-26`
+* `NEW` progress
+* `NEW` [#340](https://github.com/LuaLS/lua-language-server/pull/340): supports `---@type table`
+* `FIX` [#355](https://github.com/LuaLS/lua-language-server/pull/355)
+* `FIX` [#359](https://github.com/LuaLS/lua-language-server/issues/359)
+* `FIX` [#361](https://github.com/LuaLS/lua-language-server/issues/361)
+
+## 1.11.2
+`2021-1-7`
+* `FIX` [#345](https://github.com/LuaLS/lua-language-server/issues/345): not works with unexpect args
+* `FIX` [#346](https://github.com/LuaLS/lua-language-server/issues/346): dont modify the cache
+
+## 1.11.1
+`2021-1-5`
+* `CHG` performance optimization
+
+## 1.11.0
+`2021-1-5`
+* `NEW` `Lua.runtime.plugin`
+* `NEW` intelli-scense: improved `m.f = function (self) end` from `self` to `m`
+* `CHG` performance optimization
+* `CHG` completion: improve performance of workspace words
+* `FIX` hover: tail comments may be cutted
+* `FIX` runtime errors
+
+## 1.10.0
+`2021-1-4`
+* `NEW` workspace: supports `.dll`(`.so`) in `require`
+* `NEW` folding: `---@class`, `--#region` and docs of function
+* `NEW` diagnostic: `count-down-loop`
+* `CHG` supports `~` in command line
+* `CHG` completion: improve workspace words
+* `CHG` completion: show words in string
+* `CHG` completion: split `for .. in` to `for .. ipairs` and `for ..pairs`
+* `CHG` diagnostic: `unused-function` checks recursive
+* `FIX` [#339](https://github.com/LuaLS/lua-language-server/issues/339)
+
+## 1.9.0
+`2020-12-31`
+* `NEW` YEAR! Peace and love!
+* `NEW` specify path of `log` and `meta` by `--logpath=xxx` and `--metapath=XXX` in command line
+* `NEW` completion: worksapce word
+* `NEW` completion: show words in comment
+* `NEW` completion: generate function documentation
+* `CHG` got arg after script name: `lua-language-server.exe main.lua --logpath=D:\log --metapath=D:\meta --develop=false`
+* `FIX` runtime errors
+
+## 1.8.2
+`2020-12-29`
+* `CHG` performance optimization
+
+## 1.8.1
+`2020-12-24`
+* `FIX` telemetry: connect failed caused not working
+
+## 1.8.0
+`2020-12-23`
+* `NEW` runtime: support nonstandard symbol
+* `NEW` diagnostic: `close-non-object`
+* `FIX` [#318](https://github.com/LuaLS/lua-language-server/issues/318)
+
+## 1.7.4
+`2020-12-20`
+* `FIX` workspace: preload may failed
+
+## 1.7.3
+`2020-12-20`
+* `FIX` luadoc: typo of `package.config`
+* `FIX` [#310](https://github.com/LuaLS/lua-language-server/issues/310)
+
+## 1.7.2
+`2020-12-17`
+* `CHG` completion: use custom tabsize
+* `FIX` [#307](https://github.com/LuaLS/lua-language-server/issues/307)
+* `FIX` a lot of runtime errors
+
+## 1.7.1
+`2020-12-16`
+* `NEW` setting: `diagnostics.neededFileStatus`
+* `FIX` scan workspace may fails
+* `FIX` quickfix: `newline-call` failed
+* `FIX` a lot of other runtime errors
+
+## 1.7.0
+`2020-12-16`
+* `NEW` diagnostic: `undefined-field`
+* `NEW` telemetry:
+ + [What data will be sent](https://github.com/LuaLS/lua-language-server/blob/master/script/service/telemetry.lua)
+ + [How to use this data](https://github.com/LuaLS/lua-telemetry-server/tree/master/method)
+* `CHG` diagnostic: `unused-function` ignores function with ``
+* `CHG` semantic: not cover local call
+* `CHG` language client: update to [7.0.0](https://github.com/microsoft/vscode-languageserver-node/commit/20681d7632bb129def0c751be73cf76bd01f2f3a)
+* `FIX` semantic: tokens may not be updated correctly
+* `FIX` completion: require path broken
+* `FIX` hover: document uri
+* `FIX` [#291](https://github.com/LuaLS/lua-language-server/issues/291)
+* `FIX` [#294](https://github.com/LuaLS/lua-language-server/issues/294)
+
+## 1.6.0
+`2020-12-14`
+* `NEW` completion: auto require local modules
+* `NEW` completion: support delegate
+* `NEW` hover: show function by keyword `function`
+* `NEW` code action: swap params
+* `CHG` standalone: unbind the relative path between binaries and scripts
+* `CHG` hover: `LuaDoc` also catchs `--` (no need `---`)
+* `CHG` rename: support doc
+* `CHG` completion: keyword considers expression
+* `FIX` [#297](https://github.com/LuaLS/lua-language-server/issues/297)
+
+## 1.5.0
+`2020-12-5`
+* `NEW` setting `runtime.unicodeName`
+* `NEW` fully supports `---@generic T`
+* `FIX` [#274](https://github.com/LuaLS/lua-language-server/issues/274)
+* `FIX` [#276](https://github.com/LuaLS/lua-language-server/issues/276)
+* `FIX` [#279](https://github.com/LuaLS/lua-language-server/issues/279)
+* `FIX` [#280](https://github.com/LuaLS/lua-language-server/issues/280)
+
+## 1.4.0
+`2020-12-3`
+* `NEW` setting `hover.previewFields`: limit how many fields are shown in table hover
+* `NEW` fully supports `---@type Object[]`
+* `NEW` supports `---@see`
+* `NEW` diagnostic `unbalanced-assignments`
+* `CHG` resolves infer of `string|table`
+* `CHG` `unused-local` ignores local with `---@class`
+* `CHG` locale file format changes to `lua`
+
+## 1.3.0
+`2020-12-1`
+
+* `NEW` provides change logs, I think it's good idea for people knowing what's new ~~(bugs)~~
+* `NEW` meta files of LuaJIT
+* `NEW` support completion of `type(o) == ?`
+* `CHG` now I think it's a bad idea as it took me nearly an hour to complete the logs started from version `1.0.0`
+* `FIX` closing ignored or library file dose not clean diagnostics
+* `FIX` searching of `t.f1` when `t.f1 = t.f2`
+* `FIX` missing signature help of global function
+
+## 1.2.1
+`2020-11-27`
+
+* `FIX` syntaxes tokens: [#272](https://github.com/LuaLS/lua-language-server/issues/272)
+
+## 1.2.0
+`2020-11-27`
+
+* `NEW` hover shows comments from `---@param` and `---@return`: [#135](https://github.com/LuaLS/lua-language-server/issues/135)
+* `NEW` support `LuaDoc` as tail comment
+* `FIX` `---@class` inheritance
+* `FIX` missed syntaxes token: `punctuation.definition.parameters.finish.lua`
+
+## 1.1.4
+`2020-11-25`
+
+* `FIX` wiered completion suggests for require paths in `Linux` and `macOS`: [#269](https://github.com/LuaLS/lua-language-server/issues/269)
+
+## 1.1.3
+`2020-11-25`
+
+* `FIX` extension not works in `Ubuntu`: [#268](https://github.com/LuaLS/lua-language-server/issues/268)
+
+## 1.1.2
+`2020-11-24`
+
+* `NEW` auto completion finds globals from `Lua.diagnostics.globals`
+* `NEW` support tail `LuaDoc`
+* `CHG` no more `Lua.intelliScense.fastGlobal`, now globals always fast and accurate
+* `CHG` `LuaDoc` supports `--- @`
+* `CHG` `find reference` uses extra `Lua.intelliSense.searchDepth`
+* `CHG` diagnostics are limited by `100` in each file
+* `FIX` library files are under limit of `Lua.workspace.maxPreload`: [#266](https://github.com/LuaLS/lua-language-server/issues/266)
+
+## 1.1.1
+`2020-11-23`
+
+* `NEW` auto completion special marks deprecated items
+* `FIX` diagnostics may push wrong uri in `Linux` and `macOS`
+* `FIX` diagnostics not cleaned up when closing ignored lua file
+* `FIX` reload workspace remains old caches
+* `FIX` incorrect hover of local attribute
+
+## 1.1.0
+`2020-11-20`
+
+* `NEW` no longer `BETA`
+* `NEW` use `meta.lua` instead of `meta.lni`, now you can find the definition of builtin function
+* `CHG` Lua files outside of workspace no longer launch a new server
+
+## 1.0.6
+`2020-11-20`
+
+* `NEW` diagnostic `code-after-break`
+* `CHG` optimize performance
+* `CHG` updated language client
+* `CHG` `unused-function` ignores global functions (may used out of Lua)
+* `CHG` checks if client supports `Lua.completion.enable`: [#259](https://github.com/LuaLS/lua-language-server/issues/259)
+* `FIX` support for single Lua file
+* `FIX` [#257](https://github.com/LuaLS/lua-language-server/issues/257)
+
+## 1.0.5
+`2020-11-14`
+
+* `NEW` `LuaDoc` supports more `EmmyLua`
+
+## 1.0.4
+`2020-11-12`
+
+* `FIX` extension not works
+
+## 1.0.3
+`2020-11-12`
+
+* `NEW` server kills itself when disconnecting
+* `NEW` `LuaDoc` supports more `EmmyLua`
+* `FIX` `Lua.diagnostics.enable` not works: [#251](https://github.com/LuaLS/lua-language-server/issues/251)
+
+## 1.0.2
+`2020-11-11`
+
+* `NEW` supports `---|` after `doc.type`
+* `CHG` `lowcase-global` ignores globals with `---@class`
+* `FIX` endless loop
+* `FIX` [#244](https://github.com/LuaLS/lua-language-server/issues/244)
+
+## 1.0.1
+`2020-11-10`
+
+* `FIX` autocompletion not works.
+
+## 1.0.0
+`2020-11-9`
+
+* `NEW` implementation, NEW start!
+
+
+[lizho]: (https://github.com/lizho)
+[fesily]: (https://github.com/fesily)
+[Andreas Matthias]: (https://github.com/AndreasMatthias)
+[Daniel Farrell]: (https://github.com/danpf)
+[Paul Emmerich]: (https://github.com/emmericp)
+[Artem Dzhemesiuk]: (https://github.com/zziger)
+[clay-golem]: (https://github.com/clay-golem)
diff --git a/nvim/mason/packages/lua-language-server/libexec/debugger.lua b/nvim/mason/packages/lua-language-server/libexec/debugger.lua
new file mode 100644
index 0000000..49aedaa
--- /dev/null
+++ b/nvim/mason/packages/lua-language-server/libexec/debugger.lua
@@ -0,0 +1,66 @@
+if not DEVELOP then
+ return
+end
+
+local fs = require 'bee.filesystem'
+local luaDebugs = {}
+
+local home = os.getenv 'USERPROFILE' or os.getenv 'HOME'
+if not home then
+ log.error('Cannot find home directory')
+ return
+end
+for _, vscodePath in ipairs { '.vscode', '.vscode-insiders', '.vscode-server-insiders' } do
+ local extensionPath = fs.path(home) / vscodePath / 'extensions'
+ log.debug('Search extensions at:', extensionPath:string())
+
+ if fs.exists(extensionPath) then
+ for path in fs.pairs(extensionPath) do
+ if fs.is_directory(path) then
+ local name = path:filename():string()
+ if name:find('actboy168.lua-debug-', 1, true) then
+ luaDebugs[#luaDebugs+1] = path:string()
+ end
+ end
+ end
+ end
+end
+
+if #luaDebugs == 0 then
+ log.debug('Cant find "actboy168.lua-debug"')
+ return
+end
+
+local function getVer(filename)
+ local a, b, c = filename:match('actboy168%.lua%-debug%-(%d+)%.(%d+)%.(%d+)')
+ if not a then
+ return 0
+ end
+ return a * 1000000 + b * 1000 + c
+end
+
+table.sort(luaDebugs, function (a, b)
+ return getVer(a) > getVer(b)
+end)
+
+local debugPath = luaDebugs[1]
+local cpath = "/runtime/win64/lua54/?.dll;/runtime/win64/lua54/?.so"
+local path = "/script/?.lua"
+
+local function tryDebugger()
+ local entry = assert(package.searchpath('debugger', debugPath .. path))
+ local root = debugPath
+ local addr = ("127.0.0.1:%d"):format(DBGPORT)
+ local dbg = loadfile(entry)(entry)
+ dbg:start {
+ address = addr,
+ }
+ log.debug('Debugger startup, listen port:', DBGPORT)
+ log.debug('Debugger args:', addr, root, path, cpath)
+ if DBGWAIT then
+ dbg:event('wait')
+ end
+ return dbg
+end
+
+xpcall(tryDebugger, log.debug)
diff --git a/nvim/mason/packages/lua-language-server/libexec/locale/en-us/meta.lua b/nvim/mason/packages/lua-language-server/libexec/locale/en-us/meta.lua
new file mode 100644
index 0000000..118384c
--- /dev/null
+++ b/nvim/mason/packages/lua-language-server/libexec/locale/en-us/meta.lua
@@ -0,0 +1,783 @@
+---@diagnostic disable: undefined-global, lowercase-global
+
+arg =
+'Command-line arguments of Lua Standalone.'
+
+assert =
+'Raises an error if the value of its argument v is false (i.e., `nil` or `false`); otherwise, returns all its arguments. In case of error, `message` is the error object; when absent, it defaults to `"assertion failed!"`'
+
+cgopt.collect =
+'Performs a full garbage-collection cycle.'
+cgopt.stop =
+'Stops automatic execution.'
+cgopt.restart =
+'Restarts automatic execution.'
+cgopt.count =
+'Returns the total memory in Kbytes.'
+cgopt.step =
+'Performs a garbage-collection step.'
+cgopt.setpause =
+'Set `pause`.'
+cgopt.setstepmul =
+'Set `step multiplier`.'
+cgopt.incremental =
+'Change the collector mode to incremental.'
+cgopt.generational =
+'Change the collector mode to generational.'
+cgopt.isrunning =
+'Returns whether the collector is running.'
+
+collectgarbage =
+'This function is a generic interface to the garbage collector. It performs different functions according to its first argument, `opt`.'
+
+dofile =
+'Opens the named file and executes its content as a Lua chunk. When called without arguments, `dofile` executes the content of the standard input (`stdin`). Returns all values returned by the chunk. In case of errors, `dofile` propagates the error to its caller. (That is, `dofile` does not run in protected mode.)'
+
+error =
+[[
+Terminates the last protected function called and returns message as the error object.
+
+Usually, `error` adds some information about the error position at the beginning of the message, if the message is a string.
+]]
+
+_G =
+'A global variable (not a function) that holds the global environment (see §2.2). Lua itself does not use this variable; changing its value does not affect any environment, nor vice versa.'
+
+getfenv =
+'Returns the current environment in use by the function. `f` can be a Lua function or a number that specifies the function at that stack level.'
+
+getmetatable =
+'If object does not have a metatable, returns nil. Otherwise, if the object\'s metatable has a __metatable field, returns the associated value. Otherwise, returns the metatable of the given object.'
+
+ipairs =
+[[
+Returns three values (an iterator function, the table `t`, and `0`) so that the construction
+```lua
+ for i,v in ipairs(t) do body end
+```
+will iterate over the key–value pairs `(1,t[1]), (2,t[2]), ...`, up to the first absent index.
+]]
+
+loadmode.b =
+'Only binary chunks.'
+loadmode.t =
+'Only text chunks.'
+loadmode.bt =
+'Both binary and text.'
+
+load['<5.1'] =
+'Loads a chunk using function `func` to get its pieces. Each call to `func` must return a string that concatenates with previous results.'
+load['>5.2'] =
+[[
+Loads a chunk.
+
+If `chunk` is a string, the chunk is this string. If `chunk` is a function, `load` calls it repeatedly to get the chunk pieces. Each call to `chunk` must return a string that concatenates with previous results. A return of an empty string, `nil`, or no value signals the end of the chunk.
+]]
+
+loadfile =
+'Loads a chunk from file `filename` or from the standard input, if no file name is given.'
+
+loadstring =
+'Loads a chunk from the given string.'
+
+module =
+'Creates a module.'
+
+next =
+[[
+Allows a program to traverse all fields of a table. Its first argument is a table and its second argument is an index in this table. A call to `next` returns the next index of the table and its associated value. When called with `nil` as its second argument, `next` returns an initial index and its associated value. When called with the last index, or with `nil` in an empty table, `next` returns `nil`. If the second argument is absent, then it is interpreted as `nil`. In particular, you can use `next(t)` to check whether a table is empty.
+
+The order in which the indices are enumerated is not specified, *even for numeric indices*. (To traverse a table in numerical order, use a numerical `for`.)
+
+The behavior of `next` is undefined if, during the traversal, you assign any value to a non-existent field in the table. You may however modify existing fields. In particular, you may set existing fields to nil.
+]]
+
+pairs =
+[[
+If `t` has a metamethod `__pairs`, calls it with t as argument and returns the first three results from the call.
+
+Otherwise, returns three values: the $next function, the table `t`, and `nil`, so that the construction
+```lua
+ for k,v in pairs(t) do body end
+```
+will iterate over all key–value pairs of table `t`.
+
+See function $next for the caveats of modifying the table during its traversal.
+]]
+
+pcall =
+[[
+Calls the function `f` with the given arguments in *protected mode*. This means that any error inside `f` is not propagated; instead, `pcall` catches the error and returns a status code. Its first result is the status code (a boolean), which is true if the call succeeds without errors. In such case, `pcall` also returns all results from the call, after this first result. In case of any error, `pcall` returns `false` plus the error object.
+]]
+
+print =
+[[
+Receives any number of arguments and prints their values to `stdout`, converting each argument to a string following the same rules of $tostring.
+The function print is not intended for formatted output, but only as a quick way to show a value, for instance for debugging. For complete control over the output, use $string.format and $io.write.
+]]
+
+rawequal =
+'Checks whether v1 is equal to v2, without invoking the `__eq` metamethod.'
+
+rawget =
+'Gets the real value of `table[index]`, without invoking the `__index` metamethod.'
+
+rawlen =
+'Returns the length of the object `v`, without invoking the `__len` metamethod.'
+
+rawset =
+[[
+Sets the real value of `table[index]` to `value`, without using the `__newindex` metavalue. `table` must be a table, `index` any value different from `nil` and `NaN`, and `value` any Lua value.
+This function returns `table`.
+]]
+
+select =
+'If `index` is a number, returns all arguments after argument number `index`; a negative number indexes from the end (`-1` is the last argument). Otherwise, `index` must be the string `"#"`, and `select` returns the total number of extra arguments it received.'
+
+setfenv =
+'Sets the environment to be used by the given function.'
+
+setmetatable =
+[[
+Sets the metatable for the given table. If `metatable` is `nil`, removes the metatable of the given table. If the original metatable has a `__metatable` field, raises an error.
+
+This function returns `table`.
+
+To change the metatable of other types from Lua code, you must use the debug library (§6.10).
+]]
+
+tonumber =
+[[
+When called with no `base`, `tonumber` tries to convert its argument to a number. If the argument is already a number or a string convertible to a number, then `tonumber` returns this number; otherwise, it returns `fail`.
+
+The conversion of strings can result in integers or floats, according to the lexical conventions of Lua (see §3.1). The string may have leading and trailing spaces and a sign.
+]]
+
+tostring =
+[[
+Receives a value of any type and converts it to a string in a human-readable format.
+
+If the metatable of `v` has a `__tostring` field, then `tostring` calls the corresponding value with `v` as argument, and uses the result of the call as its result. Otherwise, if the metatable of `v` has a `__name` field with a string value, `tostring` may use that string in its final result.
+
+For complete control of how numbers are converted, use $string.format.
+]]
+
+type =
+[[
+Returns the type of its only argument, coded as a string. The possible results of this function are `"nil"` (a string, not the value `nil`), `"number"`, `"string"`, `"boolean"`, `"table"`, `"function"`, `"thread"`, and `"userdata"`.
+]]
+
+_VERSION =
+'A global variable (not a function) that holds a string containing the running Lua version.'
+
+warn =
+'Emits a warning with a message composed by the concatenation of all its arguments (which should be strings).'
+
+xpcall['=5.1'] =
+'Calls function `f` with the given arguments in protected mode with a new message handler.'
+xpcall['>5.2'] =
+'Calls function `f` with the given arguments in protected mode with a new message handler.'
+
+unpack =
+[[
+Returns the elements from the given `list`. This function is equivalent to
+```lua
+ return list[i], list[i+1], ···, list[j]
+```
+]]
+
+bit32 =
+''
+bit32.arshift =
+[[
+Returns the number `x` shifted `disp` bits to the right. Negative displacements shift to the left.
+
+This shift operation is what is called arithmetic shift. Vacant bits on the left are filled with copies of the higher bit of `x`; vacant bits on the right are filled with zeros.
+]]
+bit32.band =
+'Returns the bitwise *and* of its operands.'
+bit32.bnot =
+[[
+Returns the bitwise negation of `x`.
+
+```lua
+assert(bit32.bnot(x) ==
+(-1 - x) % 2^32)
+```
+]]
+bit32.bor =
+'Returns the bitwise *or* of its operands.'
+bit32.btest =
+'Returns a boolean signaling whether the bitwise *and* of its operands is different from zero.'
+bit32.bxor =
+'Returns the bitwise *exclusive or* of its operands.'
+bit32.extract =
+'Returns the unsigned number formed by the bits `field` to `field + width - 1` from `n`.'
+bit32.replace =
+'Returns a copy of `n` with the bits `field` to `field + width - 1` replaced by the value `v` .'
+bit32.lrotate =
+'Returns the number `x` rotated `disp` bits to the left. Negative displacements rotate to the right.'
+bit32.lshift =
+[[
+Returns the number `x` shifted `disp` bits to the left. Negative displacements shift to the right. In any direction, vacant bits are filled with zeros.
+
+```lua
+assert(bit32.lshift(b, disp) ==
+(b * 2^disp) % 2^32)
+```
+]]
+bit32.rrotate =
+'Returns the number `x` rotated `disp` bits to the right. Negative displacements rotate to the left.'
+bit32.rshift =
+[[
+Returns the number `x` shifted `disp` bits to the right. Negative displacements shift to the left. In any direction, vacant bits are filled with zeros.
+
+```lua
+assert(bit32.rshift(b, disp) ==
+math.floor(b % 2^32 / 2^disp))
+```
+]]
+
+coroutine =
+''
+coroutine.create =
+'Creates a new coroutine, with body `f`. `f` must be a function. Returns this new coroutine, an object with type `"thread"`.'
+coroutine.isyieldable =
+'Returns true when the running coroutine can yield.'
+coroutine.isyieldable['>5.4']=
+'Returns true when the coroutine `co` can yield. The default for `co` is the running coroutine.'
+coroutine.close =
+'Closes coroutine `co` , closing all its pending to-be-closed variables and putting the coroutine in a dead state.'
+coroutine.resume =
+'Starts or continues the execution of coroutine `co`.'
+coroutine.running =
+'Returns the running coroutine plus a boolean, true when the running coroutine is the main one.'
+coroutine.status =
+'Returns the status of coroutine `co`.'
+coroutine.wrap =
+'Creates a new coroutine, with body `f`; `f` must be a function. Returns a function that resumes the coroutine each time it is called.'
+coroutine.yield =
+'Suspends the execution of the calling coroutine.'
+
+costatus.running =
+'Is running.'
+costatus.suspended =
+'Is suspended or not started.'
+costatus.normal =
+'Is active but not running.'
+costatus.dead =
+'Has finished or stopped with an error.'
+
+debug =
+''
+debug.debug =
+'Enters an interactive mode with the user, running each string that the user enters.'
+debug.getfenv =
+'Returns the environment of object `o` .'
+debug.gethook =
+'Returns the current hook settings of the thread.'
+debug.getinfo =
+'Returns a table with information about a function.'
+debug.getlocal['<5.1'] =
+'Returns the name and the value of the local variable with index `local` of the function at level `level` of the stack.'
+debug.getlocal['>5.2'] =
+'Returns the name and the value of the local variable with index `local` of the function at level `f` of the stack.'
+debug.getmetatable =
+'Returns the metatable of the given value.'
+debug.getregistry =
+'Returns the registry table.'
+debug.getupvalue =
+'Returns the name and the value of the upvalue with index `up` of the function.'
+debug.getuservalue['<5.3'] =
+'Returns the Lua value associated to u.'
+debug.getuservalue['>5.4'] =
+[[
+Returns the `n`-th user value associated
+to the userdata `u` plus a boolean,
+`false` if the userdata does not have that value.
+]]
+debug.setcstacklimit =
+[[
+### **Deprecated in `Lua 5.4.2`**
+
+Sets a new limit for the C stack. This limit controls how deeply nested calls can go in Lua, with the intent of avoiding a stack overflow.
+
+In case of success, this function returns the old limit. In case of error, it returns `false`.
+]]
+debug.setfenv =
+'Sets the environment of the given `object` to the given `table` .'
+debug.sethook =
+'Sets the given function as a hook.'
+debug.setlocal =
+'Assigns the `value` to the local variable with index `local` of the function at `level` of the stack.'
+debug.setmetatable =
+'Sets the metatable for the given value to the given table (which can be `nil`).'
+debug.setupvalue =
+'Assigns the `value` to the upvalue with index `up` of the function.'
+debug.setuservalue['<5.3'] =
+'Sets the given value as the Lua value associated to the given udata.'
+debug.setuservalue['>5.4'] =
+[[
+Sets the given `value` as
+the `n`-th user value associated to the given `udata`.
+`udata` must be a full userdata.
+]]
+debug.traceback =
+'Returns a string with a traceback of the call stack. The optional message string is appended at the beginning of the traceback.'
+debug.upvalueid =
+'Returns a unique identifier (as a light userdata) for the upvalue numbered `n` from the given function.'
+debug.upvaluejoin =
+'Make the `n1`-th upvalue of the Lua closure `f1` refer to the `n2`-th upvalue of the Lua closure `f2`.'
+
+infowhat.n =
+'`name` and `namewhat`'
+infowhat.S =
+'`source`, `short_src`, `linedefined`, `lastlinedefined`, and `what`'
+infowhat.l =
+'`currentline`'
+infowhat.t =
+'`istailcall`'
+infowhat.u['<5.1'] =
+'`nups`'
+infowhat.u['>5.2'] =
+'`nups`, `nparams`, and `isvararg`'
+infowhat.f =
+'`func`'
+infowhat.r =
+'`ftransfer` and `ntransfer`'
+infowhat.L =
+'`activelines`'
+
+hookmask.c =
+'Calls hook when Lua calls a function.'
+hookmask.r =
+'Calls hook when Lua returns from a function.'
+hookmask.l =
+'Calls hook when Lua enters a new line of code.'
+
+file =
+''
+file[':close'] =
+'Close `file`.'
+file[':flush'] =
+'Saves any written data to `file`.'
+file[':lines'] =
+[[
+------
+```lua
+for c in file:lines(...) do
+ body
+end
+```
+]]
+file[':read'] =
+'Reads the `file`, according to the given formats, which specify what to read.'
+file[':seek'] =
+'Sets and gets the file position, measured from the beginning of the file.'
+file[':setvbuf'] =
+'Sets the buffering mode for an output file.'
+file[':write'] =
+'Writes the value of each of its arguments to `file`.'
+
+readmode.n =
+'Reads a numeral and returns it as number.'
+readmode.a =
+'Reads the whole file.'
+readmode.l =
+'Reads the next line skipping the end of line.'
+readmode.L =
+'Reads the next line keeping the end of line.'
+
+seekwhence.set =
+'Base is beginning of the file.'
+seekwhence.cur =
+'Base is current position.'
+seekwhence['.end'] =
+'Base is end of file.'
+
+vbuf.no =
+'Output operation appears immediately.'
+vbuf.full =
+'Performed only when the buffer is full.'
+vbuf.line =
+'Buffered until a newline is output.'
+
+io =
+''
+io.stdin =
+'standard input.'
+io.stdout =
+'standard output.'
+io.stderr =
+'standard error.'
+io.close =
+'Close `file` or default output file.'
+io.flush =
+'Saves any written data to default output file.'
+io.input =
+'Sets `file` as the default input file.'
+io.lines =
+[[
+------
+```lua
+for c in io.lines(filename, ...) do
+ body
+end
+```
+]]
+io.open =
+'Opens a file, in the mode specified in the string `mode`.'
+io.output =
+'Sets `file` as the default output file.'
+io.popen =
+'Starts program prog in a separated process.'
+io.read =
+'Reads the `file`, according to the given formats, which specify what to read.'
+io.tmpfile =
+'In case of success, returns a handle for a temporary file.'
+io.type =
+'Checks whether `obj` is a valid file handle.'
+io.write =
+'Writes the value of each of its arguments to default output file.'
+
+openmode.r =
+'Read mode.'
+openmode.w =
+'Write mode.'
+openmode.a =
+'Append mode.'
+openmode['.r+'] =
+'Update mode, all previous data is preserved.'
+openmode['.w+'] =
+'Update mode, all previous data is erased.'
+openmode['.a+'] =
+'Append update mode, previous data is preserved, writing is only allowed at the end of file.'
+openmode.rb =
+'Read mode. (in binary mode.)'
+openmode.wb =
+'Write mode. (in binary mode.)'
+openmode.ab =
+'Append mode. (in binary mode.)'
+openmode['.r+b'] =
+'Update mode, all previous data is preserved. (in binary mode.)'
+openmode['.w+b'] =
+'Update mode, all previous data is erased. (in binary mode.)'
+openmode['.a+b'] =
+'Append update mode, previous data is preserved, writing is only allowed at the end of file. (in binary mode.)'
+
+popenmode.r =
+'Read data from this program by `file`.'
+popenmode.w =
+'Write data to this program by `file`.'
+
+filetype.file =
+'Is an open file handle.'
+filetype['.closed file'] =
+'Is a closed file handle.'
+filetype['.nil'] =
+'Is not a file handle.'
+
+math =
+''
+math.abs =
+'Returns the absolute value of `x`.'
+math.acos =
+'Returns the arc cosine of `x` (in radians).'
+math.asin =
+'Returns the arc sine of `x` (in radians).'
+math.atan['<5.2'] =
+'Returns the arc tangent of `x` (in radians).'
+math.atan['>5.3'] =
+'Returns the arc tangent of `y/x` (in radians).'
+math.atan2 =
+'Returns the arc tangent of `y/x` (in radians).'
+math.ceil =
+'Returns the smallest integral value larger than or equal to `x`.'
+math.cos =
+'Returns the cosine of `x` (assumed to be in radians).'
+math.cosh =
+'Returns the hyperbolic cosine of `x` (assumed to be in radians).'
+math.deg =
+'Converts the angle `x` from radians to degrees.'
+math.exp =
+'Returns the value `e^x` (where `e` is the base of natural logarithms).'
+math.floor =
+'Returns the largest integral value smaller than or equal to `x`.'
+math.fmod =
+'Returns the remainder of the division of `x` by `y` that rounds the quotient towards zero.'
+math.frexp =
+'Decompose `x` into tails and exponents. Returns `m` and `e` such that `x = m * (2 ^ e)`, `e` is an integer and the absolute value of `m` is in the range [0.5, 1) (or zero when `x` is zero).'
+math.huge =
+'A value larger than any other numeric value.'
+math.ldexp =
+'Returns `m * (2 ^ e)` .'
+math.log['<5.1'] =
+'Returns the natural logarithm of `x` .'
+math.log['>5.2'] =
+'Returns the logarithm of `x` in the given base.'
+math.log10 =
+'Returns the base-10 logarithm of x.'
+math.max =
+'Returns the argument with the maximum value, according to the Lua operator `<`.'
+math.maxinteger['>5.3'] =
+'An integer with the maximum value for an integer.'
+math.min =
+'Returns the argument with the minimum value, according to the Lua operator `<`.'
+math.mininteger['>5.3'] =
+'An integer with the minimum value for an integer.'
+math.modf =
+'Returns the integral part of `x` and the fractional part of `x`.'
+math.pi =
+'The value of *Ï€*.'
+math.pow =
+'Returns `x ^ y` .'
+math.rad =
+'Converts the angle `x` from degrees to radians.'
+math.random =
+[[
+* `math.random()`: Returns a float in the range [0,1).
+* `math.random(n)`: Returns a integer in the range [1, n].
+* `math.random(m, n)`: Returns a integer in the range [m, n].
+]]
+math.randomseed['<5.3'] =
+'Sets `x` as the "seed" for the pseudo-random generator.'
+math.randomseed['>5.4'] =
+[[
+* `math.randomseed(x, y)`: Concatenate `x` and `y` into a 128-bit `seed` to reinitialize the pseudo-random generator.
+* `math.randomseed(x)`: Equate to `math.randomseed(x, 0)` .
+* `math.randomseed()`: Generates a seed with a weak attempt for randomness.
+]]
+math.sin =
+'Returns the sine of `x` (assumed to be in radians).'
+math.sinh =
+'Returns the hyperbolic sine of `x` (assumed to be in radians).'
+math.sqrt =
+'Returns the square root of `x`.'
+math.tan =
+'Returns the tangent of `x` (assumed to be in radians).'
+math.tanh =
+'Returns the hyperbolic tangent of `x` (assumed to be in radians).'
+math.tointeger['>5.3'] =
+'If the value `x` is convertible to an integer, returns that integer.'
+math.type['>5.3'] =
+'Returns `"integer"` if `x` is an integer, `"float"` if it is a float, or `nil` if `x` is not a number.'
+math.ult['>5.3'] =
+'Returns `true` if and only if `m` is below `n` when they are compared as unsigned integers.'
+
+os =
+''
+os.clock =
+'Returns an approximation of the amount in seconds of CPU time used by the program.'
+os.date =
+'Returns a string or a table containing date and time, formatted according to the given string `format`.'
+os.difftime =
+'Returns the difference, in seconds, from time `t1` to time `t2`.'
+os.execute =
+'Passes `command` to be executed by an operating system shell.'
+os.exit['<5.1'] =
+'Calls the C function `exit` to terminate the host program.'
+os.exit['>5.2'] =
+'Calls the ISO C function `exit` to terminate the host program.'
+os.getenv =
+'Returns the value of the process environment variable `varname`.'
+os.remove =
+'Deletes the file with the given name.'
+os.rename =
+'Renames the file or directory named `oldname` to `newname`.'
+os.setlocale =
+'Sets the current locale of the program.'
+os.time =
+'Returns the current time when called without arguments, or a time representing the local date and time specified by the given table.'
+os.tmpname =
+'Returns a string with a file name that can be used for a temporary file.'
+
+osdate.year =
+'four digits'
+osdate.month =
+'1-12'
+osdate.day =
+'1-31'
+osdate.hour =
+'0-23'
+osdate.min =
+'0-59'
+osdate.sec =
+'0-61'
+osdate.wday =
+'weekday, 1–7, Sunday is 1'
+osdate.yday =
+'day of the year, 1–366'
+osdate.isdst =
+'daylight saving flag, a boolean'
+
+package =
+''
+
+require['<5.3'] =
+'Loads the given module, returns any value returned by the given module(`true` when `nil`).'
+require['>5.4'] =
+'Loads the given module, returns any value returned by the searcher(`true` when `nil`). Besides that value, also returns as a second result the loader data returned by the searcher, which indicates how `require` found the module. (For instance, if the module came from a file, this loader data is the file path.)'
+
+package.config =
+'A string describing some compile-time configurations for packages.'
+package.cpath =
+'The path used by `require` to search for a C loader.'
+package.loaded =
+'A table used by `require` to control which modules are already loaded.'
+package.loaders =
+'A table used by `require` to control how to load modules.'
+package.loadlib =
+'Dynamically links the host program with the C library `libname`.'
+package.path =
+'The path used by `require` to search for a Lua loader.'
+package.preload =
+'A table to store loaders for specific modules.'
+package.searchers =
+'A table used by `require` to control how to load modules.'
+package.searchpath =
+'Searches for the given `name` in the given `path`.'
+package.seeall =
+'Sets a metatable for `module` with its `__index` field referring to the global environment, so that this module inherits values from the global environment. To be used as an option to function `module` .'
+
+string =
+''
+string.byte =
+'Returns the internal numeric codes of the characters `s[i], s[i+1], ..., s[j]`.'
+string.char =
+'Returns a string with length equal to the number of arguments, in which each character has the internal numeric code equal to its corresponding argument.'
+string.dump =
+'Returns a string containing a binary representation (a *binary chunk*) of the given function.'
+string.find['>5.2'] =
+'Looks for the first match of `pattern` (see §6.4.1) in the string.'
+string.find['=5.1'] =
+'Looks for the first match of `pattern` (see §5.4.1) in the string.'
+string.format =
+'Returns a formatted version of its variable number of arguments following the description given in its first argument.'
+string.gmatch['>5.2'] =
+[[
+Returns an iterator function that, each time it is called, returns the next captures from `pattern` (see §6.4.1) over the string s.
+
+As an example, the following loop will iterate over all the words from string s, printing one per line:
+```lua
+ s =
+"hello world from Lua"
+ for w in string.gmatch(s, "%a+") do
+ print(w)
+ end
+```
+]]
+string.gmatch['=5.1'] =
+[[
+Returns an iterator function that, each time it is called, returns the next captures from `pattern` (see §5.4.1) over the string s.
+
+As an example, the following loop will iterate over all the words from string s, printing one per line:
+```lua
+ s =
+"hello world from Lua"
+ for w in string.gmatch(s, "%a+") do
+ print(w)
+ end
+```
+]]
+string.gsub['>5.2'] =
+'Returns a copy of s in which all (or the first `n`, if given) occurrences of the `pattern` (see §6.4.1) have been replaced by a replacement string specified by `repl`.'
+string.gsub['=5.1'] =
+'Returns a copy of s in which all (or the first `n`, if given) occurrences of the `pattern` (see §5.4.1) have been replaced by a replacement string specified by `repl`.'
+string.len =
+'Returns its length.'
+string.lower =
+'Returns a copy of this string with all uppercase letters changed to lowercase.'
+string.match['>5.2'] =
+'Looks for the first match of `pattern` (see §6.4.1) in the string.'
+string.match['=5.1'] =
+'Looks for the first match of `pattern` (see §5.4.1) in the string.'
+string.pack['>5.2'] =
+'Returns a binary string containing the values `v1`, `v2`, etc. packed (that is, serialized in binary form) according to the format string `fmt` (see §6.4.2) .'
+string.packsize['>5.2'] =
+'Returns the size of a string resulting from `string.pack` with the given format string `fmt` (see §6.4.2) .'
+string.rep['>5.2'] =
+'Returns a string that is the concatenation of `n` copies of the string `s` separated by the string `sep`.'
+string.rep['<5.1'] =
+'Returns a string that is the concatenation of `n` copies of the string `s` .'
+string.reverse =
+'Returns a string that is the string `s` reversed.'
+string.sub =
+'Returns the substring of the string that starts at `i` and continues until `j`.'
+string.unpack =
+'Returns the values packed in string according to the format string `fmt` (see §6.4.2) .'
+string.upper =
+'Returns a copy of this string with all lowercase letters changed to uppercase.'
+
+table =
+''
+table.concat =
+'Given a list where all elements are strings or numbers, returns the string `list[i]..sep..list[i+1] ··· sep..list[j]`.'
+table.insert =
+'Inserts element `value` at position `pos` in `list`.'
+table.maxn =
+'Returns the largest positive numerical index of the given table, or zero if the table has no positive numerical indices.'
+table.move =
+[[
+Moves elements from table `a1` to table `a2`.
+```lua
+a2[t],··· =
+a1[f],···,a1[e]
+return a2
+```
+]]
+table.pack =
+'Returns a new table with all arguments stored into keys `1`, `2`, etc. and with a field `"n"` with the total number of arguments.'
+table.remove =
+'Removes from `list` the element at position `pos`, returning the value of the removed element.'
+table.sort =
+'Sorts list elements in a given order, *in-place*, from `list[1]` to `list[#list]`.'
+table.unpack =
+[[
+Returns the elements from the given list. This function is equivalent to
+```lua
+ return list[i], list[i+1], ···, list[j]
+```
+By default, `i` is `1` and `j` is `#list`.
+]]
+table.foreach =
+'Executes the given f over all elements of table. For each element, f is called with the index and respective value as arguments. If f returns a non-nil value, then the loop is broken, and this value is returned as the final value of foreach.'
+table.foreachi =
+'Executes the given f over the numerical indices of table. For each index, f is called with the index and respective value as arguments. Indices are visited in sequential order, from 1 to n, where n is the size of the table. If f returns a non-nil value, then the loop is broken and this value is returned as the result of foreachi.'
+table.getn =
+'Returns the number of elements in the table. This function is equivalent to `#list`.'
+table.new =
+[[This creates a pre-sized table, just like the C API equivalent `lua_createtable()`. This is useful for big tables if the final table size is known and automatic table resizing is too expensive. `narray` parameter specifies the number of array-like items, and `nhash` parameter specifies the number of hash-like items. The function needs to be required before use.
+```lua
+ require("table.new")
+```
+]]
+table.clear =
+[[This clears all keys and values from a table, but preserves the allocated array/hash sizes. This is useful when a table, which is linked from multiple places, needs to be cleared and/or when recycling a table for use by the same context. This avoids managing backlinks, saves an allocation and the overhead of incremental array/hash part growth. The function needs to be required before use.
+```lua
+ require("table.clear").
+```
+Please note this function is meant for very specific situations. In most cases it's better to replace the (usually single) link with a new table and let the GC do its work.
+]]
+
+utf8 =
+''
+utf8.char =
+'Receives zero or more integers, converts each one to its corresponding UTF-8 byte sequence and returns a string with the concatenation of all these sequences.'
+utf8.charpattern =
+'The pattern which matches exactly one UTF-8 byte sequence, assuming that the subject is a valid UTF-8 string.'
+utf8.codes =
+[[
+Returns values so that the construction
+```lua
+for p, c in utf8.codes(s) do
+ body
+end
+```
+will iterate over all UTF-8 characters in string s, with p being the position (in bytes) and c the code point of each character. It raises an error if it meets any invalid byte sequence.
+]]
+utf8.codepoint =
+'Returns the codepoints (as integers) from all characters in `s` that start between byte position `i` and `j` (both included).'
+utf8.len =
+'Returns the number of UTF-8 characters in string `s` that start between positions `i` and `j` (both inclusive).'
+utf8.offset =
+'Returns the position (in bytes) where the encoding of the `n`-th character of `s` (counting from position `i`) starts.'
diff --git a/nvim/mason/packages/lua-language-server/libexec/locale/en-us/script.lua b/nvim/mason/packages/lua-language-server/libexec/locale/en-us/script.lua
new file mode 100644
index 0000000..82ac431
--- /dev/null
+++ b/nvim/mason/packages/lua-language-server/libexec/locale/en-us/script.lua
@@ -0,0 +1,1319 @@
+DIAG_LINE_ONLY_SPACE =
+'Line with spaces only.'
+DIAG_LINE_POST_SPACE =
+'Line with trailing space.'
+DIAG_UNUSED_LOCAL =
+'Unused local `{}`.'
+DIAG_UNDEF_GLOBAL =
+'Undefined global `{}`.'
+DIAG_UNDEF_FIELD =
+'Undefined field `{}`.'
+DIAG_UNDEF_ENV_CHILD =
+'Undefined variable `{}` (overloaded `_ENV` ).'
+DIAG_UNDEF_FENV_CHILD =
+'Undefined variable `{}` (inside module).'
+DIAG_GLOBAL_IN_NIL_ENV =
+'Invalid global (`_ENV` is `nil`).'
+DIAG_GLOBAL_IN_NIL_FENV =
+'Invalid global (module environment is `nil`).'
+DIAG_UNUSED_LABEL =
+'Unused label `{}`.'
+DIAG_UNUSED_FUNCTION =
+'Unused functions.'
+DIAG_UNUSED_VARARG =
+'Unused vararg.'
+DIAG_REDEFINED_LOCAL =
+'Redefined local `{}`.'
+DIAG_DUPLICATE_INDEX =
+'Duplicate index `{}`.'
+DIAG_DUPLICATE_METHOD =
+'Duplicate method `{}`.'
+DIAG_PREVIOUS_CALL =
+'Will be interpreted as `{}{}`. It may be necessary to add a `,`.'
+DIAG_PREFIELD_CALL =
+'Will be interpreted as `{}{}`. It may be necessary to add a `,` or `;`.'
+DIAG_OVER_MAX_ARGS =
+'This function expects a maximum of {:d} argument(s) but instead it is receiving {:d}.'
+DIAG_MISS_ARGS =
+'This function requires {:d} argument(s) but instead it is receiving {:d}.'
+DIAG_UNNECESSARY_ASSERT =
+'Unnecessary assert: this expression is always truthy.'
+DIAG_OVER_MAX_VALUES =
+'Only has {} variables, but you set {} values.'
+DIAG_AMBIGUITY_1 =
+'Compute `{}` first. You may need to add brackets.'
+DIAG_LOWERCASE_GLOBAL =
+'Global variable in lowercase initial, Did you miss `local` or misspell it?'
+DIAG_EMPTY_BLOCK =
+'Empty block.'
+DIAG_DIAGNOSTICS =
+'Lua Diagnostics.'
+DIAG_SYNTAX_CHECK =
+'Lua Syntax Check.'
+DIAG_NEED_VERSION =
+'Supported in {}, current is {}.'
+DIAG_DEFINED_VERSION =
+'Defined in {}, current is {}.'
+DIAG_DEFINED_CUSTOM =
+'Defined in {}.'
+DIAG_DUPLICATE_CLASS =
+'Duplicate Class `{}`.'
+DIAG_UNDEFINED_CLASS =
+'Undefined Class `{}`.'
+DIAG_CYCLIC_EXTENDS =
+'Cyclic extends.'
+DIAG_INEXISTENT_PARAM =
+'Inexistent param.'
+DIAG_DUPLICATE_PARAM =
+'Duplicate param.'
+DIAG_NEED_CLASS =
+'Class needs to be defined first.'
+DIAG_DUPLICATE_SET_FIELD=
+'Duplicate field `{}`.'
+DIAG_SET_CONST =
+'Assignment to const variable.'
+DIAG_SET_FOR_STATE =
+'Assignment to for-state variable.'
+DIAG_CODE_AFTER_BREAK =
+'Unable to execute code after `break`.'
+DIAG_UNBALANCED_ASSIGNMENTS =
+'The value is assigned as `nil` because the number of values is not enough. In Lua, `x, y = 1 ` is equivalent to `x, y = 1, nil` .'
+DIAG_REQUIRE_LIKE =
+'You can treat `{}` as `require` by setting.'
+DIAG_COSE_NON_OBJECT =
+'Cannot close a value of this type. (Unless set `__close` meta method)'
+DIAG_COUNT_DOWN_LOOP =
+'Do you mean `{}` ?'
+DIAG_UNKNOWN =
+'Can not infer type.'
+DIAG_DEPRECATED =
+'Deprecated.'
+DIAG_DIFFERENT_REQUIRES =
+'The same file is required with different names.'
+DIAG_REDUNDANT_RETURN =
+'Redundant return.'
+DIAG_AWAIT_IN_SYNC =
+'Async function can only be called in async function.'
+DIAG_NOT_YIELDABLE =
+'The {}th parameter of this function was not marked as yieldable, but an async function was passed in. (Use `---@param name async fun()` to mark as yieldable)'
+DIAG_DISCARD_RETURNS =
+'The return values of this function cannot be discarded.'
+DIAG_NEED_CHECK_NIL =
+'Need check nil.'
+DIAG_CIRCLE_DOC_CLASS =
+'Circularly inherited classes.'
+DIAG_DOC_FIELD_NO_CLASS =
+'The field must be defined after the class.'
+DIAG_DUPLICATE_DOC_ALIAS =
+'Duplicate defined alias `{}`.'
+DIAG_DUPLICATE_DOC_FIELD =
+'Duplicate defined fields `{}`.'
+DIAG_DUPLICATE_DOC_PARAM =
+'Duplicate params `{}`.'
+DIAG_UNDEFINED_DOC_CLASS =
+'Undefined class `{}`.'
+DIAG_UNDEFINED_DOC_NAME =
+'Undefined type or alias `{}`.'
+DIAG_UNDEFINED_DOC_PARAM =
+'Undefined param `{}`.'
+DIAG_MISSING_GLOBAL_DOC_COMMENT =
+'Missing comment for global function `{}`.'
+DIAG_MISSING_GLOBAL_DOC_PARAM =
+'Missing @param annotation for parameter `{}` in global function `{}`.'
+DIAG_MISSING_GLOBAL_DOC_RETURN =
+'Missing @return annotation at index `{}` in global function `{}`.'
+DIAG_MISSING_LOCAL_EXPORT_DOC_COMMENT =
+'Missing comment for exported local function `{}`.'
+DIAG_MISSING_LOCAL_EXPORT_DOC_PARAM =
+'Missing @param annotation for parameter `{}` in exported local function `{}`.'
+DIAG_MISSING_LOCAL_EXPORT_DOC_RETURN =
+'Missing @return annotation at index `{}` in exported local function `{}`.'
+DIAG_INCOMPLETE_SIGNATURE_DOC_PARAM =
+'Incomplete signature. Missing @param annotation for parameter `{}`.'
+DIAG_INCOMPLETE_SIGNATURE_DOC_RETURN =
+'Incomplete signature. Missing @return annotation at index `{}`.'
+DIAG_UNKNOWN_DIAG_CODE =
+'Unknown diagnostic code `{}`.'
+DIAG_CAST_LOCAL_TYPE =
+'This variable is defined as type `{def}`. Cannot convert its type to `{ref}`.'
+DIAG_CAST_FIELD_TYPE =
+'This field is defined as type `{def}`. Cannot convert its type to `{ref}`.'
+DIAG_ASSIGN_TYPE_MISMATCH =
+'Cannot assign `{ref}` to `{def}`.'
+DIAG_PARAM_TYPE_MISMATCH =
+'Cannot assign `{ref}` to parameter `{def}`.'
+DIAG_UNKNOWN_CAST_VARIABLE =
+'Unknown type conversion variable `{}`.'
+DIAG_CAST_TYPE_MISMATCH =
+'Cannot convert `{def}` to `{ref}`。'
+DIAG_MISSING_RETURN_VALUE =
+'Annotations specify that at least {min} return value(s) are required, found {rmax} returned here instead.'
+DIAG_MISSING_RETURN_VALUE_RANGE =
+'Annotations specify that at least {min} return value(s) are required, found {rmin} to {rmax} returned here instead.'
+DIAG_REDUNDANT_RETURN_VALUE =
+'Annotations specify that at most {max} return value(s) are required, found {rmax} returned here instead.'
+DIAG_REDUNDANT_RETURN_VALUE_RANGE =
+'Annotations specify that at most {max} return value(s) are required, found {rmin} to {rmax} returned here instead.'
+DIAG_MISSING_RETURN =
+'Annotations specify that a return value is required here.'
+DIAG_RETURN_TYPE_MISMATCH =
+'Annotations specify that return value #{index} has a type of `{def}`, returning value of type `{ref}` here instead.'
+DIAG_UNKNOWN_OPERATOR =
+'Unknown operator `{}`.'
+DIAG_UNREACHABLE_CODE =
+'Unreachable code.'
+DIAG_INVISIBLE_PRIVATE =
+'Field `{field}` is private, it can only be accessed in class `{class}`.'
+DIAG_INVISIBLE_PROTECTED =
+'Field `{field}` is protected, it can only be accessed in class `{class}` and its subclasses.'
+DIAG_INVISIBLE_PACKAGE =
+'Field `{field}` can only be accessed in same file `{uri}`.'
+DIAG_GLOBAL_ELEMENT =
+'Element is global.'
+DIAG_MISSING_FIELDS =
+'Missing required fields in type `{1}`: {2}'
+DIAG_INJECT_FIELD =
+'Fields cannot be injected into the reference of `{class}` for `{field}`. {fix}'
+DIAG_INJECT_FIELD_FIX_CLASS =
+'To do so, use `---@class` for `{node}`.'
+DIAG_INJECT_FIELD_FIX_TABLE =
+'To allow injection, add `{fix}` to the definition.'
+
+MWS_NOT_SUPPORT =
+'{} does not support multi workspace for now, I may need to restart to support the new workspace ...'
+MWS_RESTART =
+'Restart'
+MWS_NOT_COMPLETE =
+'Workspace is not complete yet. You may try again later...'
+MWS_COMPLETE =
+'Workspace is complete now. You may try again...'
+MWS_MAX_PRELOAD =
+'Preloaded files has reached the upper limit ({}), you need to manually open the files that need to be loaded.'
+MWS_UCONFIG_FAILED =
+'Saving user setting failed.'
+MWS_UCONFIG_UPDATED =
+'User setting updated.'
+MWS_WCONFIG_UPDATED =
+'Workspace setting updated.'
+
+WORKSPACE_SKIP_LARGE_FILE =
+'Too large file: {} skipped. The currently set size limit is: {} KB, and the file size is: {} KB.'
+WORKSPACE_LOADING =
+'Loading workspace'
+WORKSPACE_DIAGNOSTIC =
+'Diagnosing workspace'
+WORKSPACE_SKIP_HUGE_FILE =
+'For performance reasons, the parsing of this file has been stopped: {}'
+WORKSPACE_NOT_ALLOWED =
+'Your workspace is set to `{}`. Lua language server refused to load this directory. Please check your configuration.[learn more here](https://luals.github.io/wiki/faq#why-is-the-server-scanning-the-wrong-folder)'
+WORKSPACE_SCAN_TOO_MUCH =
+'More than {} files have been scanned. The current scanned directory is `{}`. Please see the [FAQ](https://luals.github.io/wiki/faq/#how-can-i-improve-startup-speeds) to see how you can include fewer files. It is also possible that your [configuration is incorrect](https://luals.github.io/wiki/faq#why-is-the-server-scanning-the-wrong-folder).'
+
+PARSER_CRASH =
+'Parser crashed! Last words:{}'
+PARSER_UNKNOWN =
+'Unknown syntax error...'
+PARSER_MISS_NAME =
+' expected.'
+PARSER_UNKNOWN_SYMBOL =
+'Unexpected symbol `{symbol}`.'
+PARSER_MISS_SYMBOL =
+'Missed symbol `{symbol}`.'
+PARSER_MISS_ESC_X =
+'Should be 2 hexadecimal digits.'
+PARSER_UTF8_SMALL =
+'At least 1 hexadecimal digit.'
+PARSER_UTF8_MAX =
+'Should be between {min} and {max} .'
+PARSER_ERR_ESC =
+'Invalid escape sequence.'
+PARSER_MUST_X16 =
+'Should be hexadecimal digits.'
+PARSER_MISS_EXPONENT =
+'Missed digits for the exponent.'
+PARSER_MISS_EXP =
+' expected.'
+PARSER_MISS_FIELD =
+' expected.'
+PARSER_MISS_METHOD =
+' expected.'
+PARSER_ARGS_AFTER_DOTS =
+'`...` should be the last arg.'
+PARSER_KEYWORD =
+' cannot be used as name.'
+PARSER_EXP_IN_ACTION =
+'Unexpected .'
+PARSER_BREAK_OUTSIDE =
+' not inside a loop.'
+PARSER_MALFORMED_NUMBER =
+'Malformed number.'
+PARSER_ACTION_AFTER_RETURN =
+' expected after `return`.'
+PARSER_ACTION_AFTER_BREAK =
+' expected after `break`.'
+PARSER_NO_VISIBLE_LABEL =
+'No visible label `{label}` .'
+PARSER_REDEFINE_LABEL =
+'Label `{label}` already defined.'
+PARSER_UNSUPPORT_SYMBOL =
+'{version} does not support this grammar.'
+PARSER_UNEXPECT_DOTS =
+'Cannot use `...` outside a vararg function.'
+PARSER_UNEXPECT_SYMBOL =
+'Unexpected symbol `{symbol}` .'
+PARSER_UNKNOWN_TAG =
+'Unknown attribute.'
+PARSER_MULTI_TAG =
+'Does not support multi attributes.'
+PARSER_UNEXPECT_LFUNC_NAME =
+'Local function can only use identifiers as name.'
+PARSER_UNEXPECT_EFUNC_NAME =
+'Function as expression cannot be named.'
+PARSER_ERR_LCOMMENT_END =
+'Multi-line annotations should be closed by `{symbol}` .'
+PARSER_ERR_C_LONG_COMMENT =
+'Lua should use `--[[ ]]` for multi-line annotations.'
+PARSER_ERR_LSTRING_END =
+'Long string should be closed by `{symbol}` .'
+PARSER_ERR_ASSIGN_AS_EQ =
+'Should use `=` for assignment.'
+PARSER_ERR_EQ_AS_ASSIGN =
+'Should use `==` for equal.'
+PARSER_ERR_UEQ =
+'Should use `~=` for not equal.'
+PARSER_ERR_THEN_AS_DO =
+'Should use `then` .'
+PARSER_ERR_DO_AS_THEN =
+'Should use `do` .'
+PARSER_MISS_END =
+'Miss corresponding `end` .'
+PARSER_ERR_COMMENT_PREFIX =
+'Lua should use `--` for annotations.'
+PARSER_MISS_SEP_IN_TABLE =
+'Miss symbol `,` or `;` .'
+PARSER_SET_CONST =
+'Assignment to const variable.'
+PARSER_UNICODE_NAME =
+'Contains Unicode characters.'
+PARSER_ERR_NONSTANDARD_SYMBOL =
+'Lua should use `{symbol}` .'
+PARSER_MISS_SPACE_BETWEEN =
+'Spaces must be left between symbols.'
+PARSER_INDEX_IN_FUNC_NAME =
+'The `[name]` form cannot be used in the name of a named function.'
+PARSER_UNKNOWN_ATTRIBUTE =
+'Local attribute should be `const` or `close`'
+PARSER_AMBIGUOUS_SYNTAX =
+'In Lua 5.1, the left brackets called by the function must be in the same line as the function.'
+PARSER_NEED_PAREN =
+'Need to add a pair of parentheses.'
+PARSER_NESTING_LONG_MARK =
+'Nesting of `[[...]]` is not allowed in Lua 5.1 .'
+PARSER_LOCAL_LIMIT =
+'Only 200 active local variables and upvalues can be existed at the same time.'
+PARSER_LUADOC_MISS_CLASS_NAME =
+' expected.'
+PARSER_LUADOC_MISS_EXTENDS_SYMBOL =
+'`:` expected.'
+PARSER_LUADOC_MISS_CLASS_EXTENDS_NAME =
+' expected.'
+PARSER_LUADOC_MISS_SYMBOL =
+'`{symbol}` expected.'
+PARSER_LUADOC_MISS_ARG_NAME =
+' expected.'
+PARSER_LUADOC_MISS_TYPE_NAME =
+' expected.'
+PARSER_LUADOC_MISS_ALIAS_NAME =
+' expected.'
+PARSER_LUADOC_MISS_ALIAS_EXTENDS =
+' expected.'
+PARSER_LUADOC_MISS_PARAM_NAME =
+' expected.'
+PARSER_LUADOC_MISS_PARAM_EXTENDS =
+' expected.'
+PARSER_LUADOC_MISS_FIELD_NAME =
+' expected.'
+PARSER_LUADOC_MISS_FIELD_EXTENDS =
+' expected.'
+PARSER_LUADOC_MISS_GENERIC_NAME =
+' expected.'
+PARSER_LUADOC_MISS_GENERIC_EXTENDS_NAME =
+' expected.'
+PARSER_LUADOC_MISS_VARARG_TYPE =
+' expected.'
+PARSER_LUADOC_MISS_FUN_AFTER_OVERLOAD =
+'`fun` expected.'
+PARSER_LUADOC_MISS_CATE_NAME =
+' expected.'
+PARSER_LUADOC_MISS_DIAG_MODE =
+' expected.'
+PARSER_LUADOC_ERROR_DIAG_MODE =
+' incorrect.'
+PARSER_LUADOC_MISS_LOCAL_NAME =
+' expected.'
+
+SYMBOL_ANONYMOUS =
+''
+
+HOVER_VIEW_DOCUMENTS =
+'View documents'
+HOVER_DOCUMENT_LUA51 =
+'http://www.lua.org/manual/5.1/manual.html#{}'
+HOVER_DOCUMENT_LUA52 =
+'http://www.lua.org/manual/5.2/manual.html#{}'
+HOVER_DOCUMENT_LUA53 =
+'http://www.lua.org/manual/5.3/manual.html#{}'
+HOVER_DOCUMENT_LUA54 =
+'http://www.lua.org/manual/5.4/manual.html#{}'
+HOVER_DOCUMENT_LUAJIT =
+'http://www.lua.org/manual/5.1/manual.html#{}'
+HOVER_NATIVE_DOCUMENT_LUA51 =
+'command:extension.lua.doc?["en-us/51/manual.html/{}"]'
+HOVER_NATIVE_DOCUMENT_LUA52 =
+'command:extension.lua.doc?["en-us/52/manual.html/{}"]'
+HOVER_NATIVE_DOCUMENT_LUA53 =
+'command:extension.lua.doc?["en-us/53/manual.html/{}"]'
+HOVER_NATIVE_DOCUMENT_LUA54 =
+'command:extension.lua.doc?["en-us/54/manual.html/{}"]'
+HOVER_NATIVE_DOCUMENT_LUAJIT =
+'command:extension.lua.doc?["en-us/51/manual.html/{}"]'
+HOVER_MULTI_PROTOTYPE =
+'({} prototypes)'
+HOVER_STRING_BYTES =
+'{} bytes'
+HOVER_STRING_CHARACTERS =
+'{} bytes, {} characters'
+HOVER_MULTI_DEF_PROTO =
+'({} definitions, {} prototypes)'
+HOVER_MULTI_PROTO_NOT_FUNC =
+'({} non functional definition)'
+HOVER_USE_LUA_PATH =
+'(Search path: `{}`)'
+HOVER_EXTENDS =
+'Expand to {}'
+HOVER_TABLE_TIME_UP =
+'Partial type inference has been disabled for performance reasons.'
+HOVER_WS_LOADING =
+'Workspace loading: {} / {}'
+HOVER_AWAIT_TOOLTIP =
+'Calling async function, current thread may be yielded.'
+
+ACTION_DISABLE_DIAG =
+'Disable diagnostics in the workspace ({}).'
+ACTION_MARK_GLOBAL =
+'Mark `{}` as defined global.'
+ACTION_REMOVE_SPACE =
+'Clear all postemptive spaces.'
+ACTION_ADD_SEMICOLON =
+'Add `;` .'
+ACTION_ADD_BRACKETS =
+'Add brackets.'
+ACTION_RUNTIME_VERSION =
+'Change runtime version to {} .'
+ACTION_OPEN_LIBRARY =
+'Load globals from {} .'
+ACTION_ADD_DO_END =
+'Add `do ... end` .'
+ACTION_FIX_LCOMMENT_END =
+'Modify to the correct multi-line annotations closing symbol.'
+ACTION_ADD_LCOMMENT_END =
+'Close multi-line annotations.'
+ACTION_FIX_C_LONG_COMMENT =
+'Modify to Lua multi-line annotations format.'
+ACTION_FIX_LSTRING_END =
+'Modify to the correct long string closing symbol.'
+ACTION_ADD_LSTRING_END =
+'Close long string.'
+ACTION_FIX_ASSIGN_AS_EQ =
+'Modify to `=` .'
+ACTION_FIX_EQ_AS_ASSIGN =
+'Modify to `==` .'
+ACTION_FIX_UEQ =
+'Modify to `~=` .'
+ACTION_FIX_THEN_AS_DO =
+'Modify to `then` .'
+ACTION_FIX_DO_AS_THEN =
+'Modify to `do` .'
+ACTION_ADD_END =
+'Add `end` (infer the addition location ny indentations).'
+ACTION_FIX_COMMENT_PREFIX =
+'Modify to `--` .'
+ACTION_FIX_NONSTANDARD_SYMBOL =
+'Modify to `{symbol}` .'
+ACTION_RUNTIME_UNICODE_NAME =
+'Allow Unicode characters.'
+ACTION_SWAP_PARAMS =
+'Change to parameter {index} of `{node}`'
+ACTION_FIX_INSERT_SPACE =
+'Insert space.'
+ACTION_JSON_TO_LUA =
+'Convert JSON to Lua'
+ACTION_DISABLE_DIAG_LINE=
+'Disable diagnostics on this line ({}).'
+ACTION_DISABLE_DIAG_FILE=
+'Disable diagnostics in this file ({}).'
+ACTION_MARK_ASYNC =
+'Mark current function as async.'
+ACTION_ADD_DICT =
+'Add \'{}\' to workspace dict'
+ACTION_FIX_ADD_PAREN =
+'Add parentheses.'
+ACTION_AUTOREQUIRE =
+"Import '{}' as {}"
+
+COMMAND_DISABLE_DIAG =
+'Disable diagnostics'
+COMMAND_MARK_GLOBAL =
+'Mark defined global'
+COMMAND_REMOVE_SPACE =
+'Clear all postemptive spaces'
+COMMAND_ADD_BRACKETS =
+'Add brackets'
+COMMAND_RUNTIME_VERSION =
+'Change runtime version'
+COMMAND_OPEN_LIBRARY =
+'Load globals from 3rd library'
+COMMAND_UNICODE_NAME =
+'Allow Unicode characters.'
+COMMAND_JSON_TO_LUA =
+'Convert JSON to Lua'
+COMMAND_JSON_TO_LUA_FAILED =
+'Convert JSON to Lua failed: {}'
+COMMAND_ADD_DICT =
+'Add Word to dictionary'
+COMMAND_REFERENCE_COUNT =
+'{} references'
+
+COMPLETION_IMPORT_FROM =
+'Import from {}'
+COMPLETION_DISABLE_AUTO_REQUIRE =
+'Disable auto require'
+COMPLETION_ASK_AUTO_REQUIRE =
+'Add the code at the top of the file to require this file?'
+
+DEBUG_MEMORY_LEAK =
+"{} I'm sorry for the serious memory leak. The language service will be restarted soon."
+DEBUG_RESTART_NOW =
+'Restart now'
+
+WINDOW_COMPILING =
+'Compiling'
+WINDOW_DIAGNOSING =
+'Diagnosing'
+WINDOW_INITIALIZING =
+'Initializing...'
+WINDOW_PROCESSING_HOVER =
+'Processing hover...'
+WINDOW_PROCESSING_DEFINITION =
+'Processing definition...'
+WINDOW_PROCESSING_REFERENCE =
+'Processing reference...'
+WINDOW_PROCESSING_RENAME =
+'Processing rename...'
+WINDOW_PROCESSING_COMPLETION =
+'Processing completion...'
+WINDOW_PROCESSING_SIGNATURE =
+'Processing signature help...'
+WINDOW_PROCESSING_SYMBOL =
+'Processing file symbols...'
+WINDOW_PROCESSING_WS_SYMBOL =
+'Processing workspace symbols...'
+WINDOW_PROCESSING_SEMANTIC_FULL =
+'Processing full semantic tokens...'
+WINDOW_PROCESSING_SEMANTIC_RANGE =
+'Processing incremental semantic tokens...'
+WINDOW_PROCESSING_HINT =
+'Processing inline hint...'
+WINDOW_PROCESSING_BUILD_META =
+'Processing build meta...'
+WINDOW_INCREASE_UPPER_LIMIT =
+'Increase upper limit'
+WINDOW_CLOSE =
+'Close'
+WINDOW_SETTING_WS_DIAGNOSTIC =
+'You can delay or disable workspace diagnostics in settings'
+WINDOW_DONT_SHOW_AGAIN =
+"Don't show again"
+WINDOW_DELAY_WS_DIAGNOSTIC =
+'Idle time diagnosis (delay {} seconds)'
+WINDOW_DISABLE_DIAGNOSTIC =
+'Disable workspace diagnostics'
+WINDOW_LUA_STATUS_WORKSPACE =
+'Workspace : {}'
+WINDOW_LUA_STATUS_CACHED_FILES =
+'Cached files: {ast}/{max}'
+WINDOW_LUA_STATUS_MEMORY_COUNT =
+'Memory usage: {mem:.f}M'
+WINDOW_LUA_STATUS_TIP =
+[[
+
+This icon is a cat,
+Not a dog nor a fox!
+ ↓↓↓
+]]
+WINDOW_LUA_STATUS_DIAGNOSIS_TITLE=
+'Perform workspace diagnosis'
+WINDOW_LUA_STATUS_DIAGNOSIS_MSG =
+'Do you want to perform workspace diagnosis?'
+WINDOW_APPLY_SETTING =
+'Apply setting'
+WINDOW_CHECK_SEMANTIC =
+'If you are using the color theme in the market, you may need to modify `editor.semanticHighlighting.enabled` to `true` to make semantic tokens take effect.'
+WINDOW_TELEMETRY_HINT =
+'Please allow sending anonymous usage data and error reports to help us further improve this extension. Read our privacy policy [here](https://luals.github.io/privacy#language-server) .'
+WINDOW_TELEMETRY_ENABLE =
+'Allow'
+WINDOW_TELEMETRY_DISABLE =
+'Prohibit'
+WINDOW_CLIENT_NOT_SUPPORT_CONFIG =
+'Your client does not support modifying settings from the server side, please manually modify the following settings:'
+WINDOW_LCONFIG_NOT_SUPPORT_CONFIG=
+'Automatic modification of local settings is not currently supported, please manually modify the following settings:'
+WINDOW_MANUAL_CONFIG_ADD =
+'`{key}`: add element `{value:q}` ;'
+WINDOW_MANUAL_CONFIG_SET =
+'`{key}`: set to `{value:q}` ;'
+WINDOW_MANUAL_CONFIG_PROP =
+'`{key}`: set the property `{prop}` to `{value:q}`;'
+WINDOW_APPLY_WHIT_SETTING =
+'Apply and modify settings'
+WINDOW_APPLY_WHITOUT_SETTING =
+'Apply but do not modify settings'
+WINDOW_ASK_APPLY_LIBRARY =
+'Do you need to configure your work environment as `{}`?'
+WINDOW_SEARCHING_IN_FILES =
+'Searching in files...'
+WINDOW_CONFIG_LUA_DEPRECATED =
+'`config.lua` is deprecated, please use `config.json` instead.'
+WINDOW_CONVERT_CONFIG_LUA =
+'Convert to `config.json`'
+WINDOW_MODIFY_REQUIRE_PATH =
+'Do you want to modify the require path?'
+WINDOW_MODIFY_REQUIRE_OK =
+'Modify'
+
+CONFIG_LOAD_FAILED =
+'Unable to read the settings file: {}'
+CONFIG_LOAD_ERROR =
+'Setting file loading error: {}'
+CONFIG_TYPE_ERROR =
+'The setting file must be in lua or json format: {}'
+CONFIG_MODIFY_FAIL_SYNTAX_ERROR =
+'Failed to modify settings, there are syntax errors in the settings file: {}'
+CONFIG_MODIFY_FAIL_NO_WORKSPACE =
+[[
+Failed to modify settings:
+* The current mode is single-file mode, server cannot create `.luarc.json` without workspace.
+* The language client dose not support modifying settings from the server side.
+
+Please modify following settings manually:
+{}
+]]
+CONFIG_MODIFY_FAIL =
+[[
+Failed to modify settings
+
+Please modify following settings manually:
+{}
+]]
+
+PLUGIN_RUNTIME_ERROR =
+[[
+An error occurred in the plugin, please report it to the plugin author.
+Please check the details in the output or log.
+Plugin path: {}
+]]
+PLUGIN_TRUST_LOAD =
+[[
+The current settings try to load the plugin at this location:{}
+
+Note that malicious plugin may harm your computer
+]]
+PLUGIN_TRUST_YES =
+[[
+Trust and load this plugin
+]]
+PLUGIN_TRUST_NO =
+[[
+Don't load this plugin
+]]
+
+CLI_CHECK_ERROR_TYPE =
+'The argument of CHECK must be a string, but got {}'
+CLI_CHECK_ERROR_URI =
+'The argument of CHECK must be a valid uri, but got {}'
+CLI_CHECK_ERROR_LEVEL =
+'Checklevel must be one of: {}'
+CLI_CHECK_INITING =
+'Initializing ...'
+CLI_CHECK_SUCCESS =
+'Diagnosis completed, no problems found'
+CLI_CHECK_PROGRESS =
+'Found {} problems in {} files'
+CLI_CHECK_RESULTS_OUTPATH =
+'Diagnosis complete, {} problems found, see {}'
+CLI_CHECK_RESULTS_PRETTY =
+'Diagnosis complete, {} problems found'
+CLI_CHECK_MULTIPLE_WORKERS =
+'Starting {} worker tasks, progress output will be disabled. This may take a few minutes.'
+CLI_DOC_INITING =
+'Loading documents ...'
+CLI_DOC_DONE =
+[[
+Documentation exported:
+]]
+CLI_DOC_WORKING =
+'Building docs...'
+
+TYPE_ERROR_ENUM_GLOBAL_DISMATCH =
+'Type `{child}` cannot match enumeration type of `{parent}`'
+TYPE_ERROR_ENUM_GENERIC_UNSUPPORTED =
+'Cannot use generic `{child}` in enumeration'
+TYPE_ERROR_ENUM_LITERAL_DISMATCH =
+'Literal `{child}` cannot match the enumeration value of `{parent}`'
+TYPE_ERROR_ENUM_OBJECT_DISMATCH =
+'The object `{child}` cannot match the enumeration value of `{parent}`. They must be the same object'
+TYPE_ERROR_ENUM_NO_OBJECT =
+'The passed in enumeration value `{child}` is not recognized'
+TYPE_ERROR_INTEGER_DISMATCH =
+'Literal `{child}` cannot match integer `{parent}`'
+TYPE_ERROR_STRING_DISMATCH =
+'Literal `{child}` cannot match string `{parent}`'
+TYPE_ERROR_BOOLEAN_DISMATCH =
+'Literal `{child}` cannot match boolean `{parent}`'
+TYPE_ERROR_TABLE_NO_FIELD =
+'Field `{key}` does not exist in the table'
+TYPE_ERROR_TABLE_FIELD_DISMATCH =
+'The type of field `{key}` is `{child}`, which cannot match `{parent}`'
+TYPE_ERROR_CHILD_ALL_DISMATCH =
+'All subtypes in `{child}` cannot match `{parent}`'
+TYPE_ERROR_PARENT_ALL_DISMATCH =
+'`{child}` cannot match any subtypes in `{parent}`'
+TYPE_ERROR_UNION_DISMATCH =
+'`{child}` cannot match `{parent}`'
+TYPE_ERROR_OPTIONAL_DISMATCH =
+'Optional type cannot match `{parent}`'
+TYPE_ERROR_NUMBER_LITERAL_TO_INTEGER =
+'The number `{child}` cannot be converted to an integer'
+TYPE_ERROR_NUMBER_TYPE_TO_INTEGER =
+'Cannot convert number type to integer type'
+TYPE_ERROR_DISMATCH =
+'Type `{child}` cannot match `{parent}`'
+
+LUADOC_DESC_CLASS =
+[=[
+Defines a class/table structure
+## Syntax
+`---@class [: [, ]...]`
+## Usage
+```
+---@class Manager: Person, Human
+Manager = {}
+```
+---
+[View Wiki](https://luals.github.io/wiki/annotations#class)
+]=]
+LUADOC_DESC_TYPE =
+[=[
+Specify the type of a certain variable
+
+Default types: `nil`, `any`, `boolean`, `string`, `number`, `integer`,
+`function`, `table`, `thread`, `userdata`, `lightuserdata`
+
+(Custom types can be provided using `@alias`)
+
+## Syntax
+`---@type [| [type]...`
+
+## Usage
+### General
+```
+---@type nil|table|myClass
+local Example = nil
+```
+
+### Arrays
+```
+---@type number[]
+local phoneNumbers = {}
+```
+
+### Enums
+```
+---@type "red"|"green"|"blue"
+local color = ""
+```
+
+### Tables
+```
+---@type table
+local settings = {
+ disableLogging = true,
+ preventShutdown = false,
+}
+
+---@type { [string]: true }
+local x --x[""] is true
+```
+
+### Functions
+```
+---@type fun(mode?: "r"|"w"): string
+local myFunction
+```
+---
+[View Wiki](https://luals.github.io/wiki/annotations#type)
+]=]
+LUADOC_DESC_ALIAS =
+[=[
+Create your own custom type that can be used with `@param`, `@type`, etc.
+
+## Syntax
+`---@alias [description]`\
+or
+```
+---@alias
+---| 'value' [# comment]
+---| 'value2' [# comment]
+...
+```
+
+## Usage
+### Expand to other type
+```
+---@alias filepath string Path to a file
+
+---@param path filepath Path to the file to search in
+function find(path, pattern) end
+```
+
+### Enums
+```
+---@alias font-style
+---| '"underlined"' # Underline the text
+---| '"bold"' # Bolden the text
+---| '"italic"' # Make the text italicized
+
+---@param style font-style Style to apply
+function setFontStyle(style) end
+```
+
+### Literal Enum
+```
+local enums = {
+ READ = 0,
+ WRITE = 1,
+ CLOSED = 2
+}
+
+---@alias FileStates
+---| `enums.READ`
+---| `enums.WRITE`
+---| `enums.CLOSE`
+```
+---
+[View Wiki](https://luals.github.io/wiki/annotations#alias)
+]=]
+LUADOC_DESC_PARAM =
+[=[
+Declare a function parameter
+
+## Syntax
+`@param [?] [comment]`
+
+## Usage
+### General
+```
+---@param url string The url to request
+---@param headers? table HTTP headers to send
+---@param timeout? number Timeout in seconds
+function get(url, headers, timeout) end
+```
+
+### Variable Arguments
+```
+---@param base string The base to concat to
+---@param ... string The values to concat
+function concat(base, ...) end
+```
+---
+[View Wiki](https://luals.github.io/wiki/annotations#param)
+]=]
+LUADOC_DESC_RETURN =
+[=[
+Declare a return value
+
+## Syntax
+`@return [name] [description]`\
+or\
+`@return [# description]`
+
+## Usage
+### General
+```
+---@return number
+---@return number # The green component
+---@return number b The blue component
+function hexToRGB(hex) end
+```
+
+### Type & name only
+```
+---@return number x, number y
+function getCoords() end
+```
+
+### Type only
+```
+---@return string, string
+function getFirstLast() end
+```
+
+### Return variable values
+```
+---@return string ... The tags of the item
+function getTags(item) end
+```
+---
+[View Wiki](https://luals.github.io/wiki/annotations#return)
+]=]
+LUADOC_DESC_FIELD =
+[=[
+Declare a field in a class/table. This allows you to provide more in-depth
+documentation for a table. As of `v3.6.0`, you can mark a field as `private`,
+`protected`, `public`, or `package`.
+
+## Syntax
+`---@field [scope] [description]`
+
+## Usage
+```
+---@class HTTP_RESPONSE
+---@field status HTTP_STATUS
+---@field headers table The headers of the response
+
+---@class HTTP_STATUS
+---@field code number The status code of the response
+---@field message string A message reporting the status
+
+---@return HTTP_RESPONSE response The response from the server
+function get(url) end
+
+--This response variable has all of the fields defined above
+response = get("localhost")
+
+--Extension provided intellisense for the below assignment
+statusCode = response.status.code
+```
+---
+[View Wiki](https://luals.github.io/wiki/annotations#field)
+]=]
+LUADOC_DESC_GENERIC =
+[=[
+Simulates generics. Generics can allow types to be re-used as they help define
+a "generic shape" that can be used with different types.
+
+## Syntax
+`---@generic [:parent_type] [, [:parent_type]]`
+
+## Usage
+### General
+```
+---@generic T
+---@param value T The value to return
+---@return T value The exact same value
+function echo(value)
+ return value
+end
+
+-- Type is string
+s = echo("e")
+
+-- Type is number
+n = echo(10)
+
+-- Type is boolean
+b = echo(true)
+
+-- We got all of this info from just using
+-- @generic rather than manually specifying
+-- each allowed type
+```
+
+### Capture name of generic type
+```
+---@class Foo
+local Foo = {}
+function Foo:Bar() end
+
+---@generic T
+---@param name `T` # the name generic type is captured here
+---@return T # generic type is returned
+function Generic(name) end
+
+local v = Generic("Foo") -- v is an object of Foo
+```
+
+### How Lua tables use generics
+```
+---@class table: { [K]: V }
+
+-- This is what allows us to create a table
+-- and intellisense keeps track of any type
+-- we give for key (K) or value (V)
+```
+---
+[View Wiki](https://luals.github.io/wiki/annotations/#generic)
+]=]
+LUADOC_DESC_VARARG =
+[=[
+Primarily for legacy support for EmmyLua annotations. `@vararg` does not
+provide typing or allow descriptions.
+
+**You should instead use `@param` when documenting parameters (variable or not).**
+
+## Syntax
+`@vararg `
+
+## Usage
+```
+---Concat strings together
+---@vararg string
+function concat(...) end
+```
+---
+[View Wiki](https://luals.github.io/wiki/annotations/#vararg)
+]=]
+LUADOC_DESC_OVERLOAD =
+[=[
+Allows defining of multiple function signatures.
+
+## Syntax
+`---@overload fun([: ] [, [: ]]...)[: [, ]...]`
+
+## Usage
+```
+---@overload fun(t: table, value: any): number
+function table.insert(t, position, value) end
+```
+---
+[View Wiki](https://luals.github.io/wiki/annotations#overload)
+]=]
+LUADOC_DESC_DEPRECATED =
+[=[
+Marks a function as deprecated. This results in any deprecated function calls
+being ~~struck through~~.
+
+## Syntax
+`---@deprecated`
+
+---
+[View Wiki](https://luals.github.io/wiki/annotations#deprecated)
+]=]
+LUADOC_DESC_META =
+[=[
+Indicates that this is a meta file and should be used for definitions and intellisense only.
+
+There are 3 main distinctions to note with meta files:
+1. There won't be any context-based intellisense in a meta file
+2. Hovering a `require` filepath in a meta file shows `[meta]` instead of an absolute path
+3. The `Find Reference` function will ignore meta files
+
+## Syntax
+`---@meta`
+
+---
+[View Wiki](https://luals.github.io/wiki/annotations#meta)
+]=]
+LUADOC_DESC_VERSION =
+[=[
+Specifies Lua versions that this function is exclusive to.
+
+Lua versions: `5.1`, `5.2`, `5.3`, `5.4`, `JIT`.
+
+Requires configuring the `Diagnostics: Needed File Status` setting.
+
+## Syntax
+`---@version [, ]...`
+
+## Usage
+### General
+```
+---@version JIT
+function onlyWorksInJIT() end
+```
+### Specify multiple versions
+```
+---@version <5.2,JIT
+function oldLuaOnly() end
+```
+---
+[View Wiki](https://luals.github.io/wiki/annotations#version)
+]=]
+LUADOC_DESC_SEE =
+[=[
+Define something that can be viewed for more information
+
+## Syntax
+`---@see `
+
+---
+[View Wiki](https://luals.github.io/wiki/annotations#see)
+]=]
+LUADOC_DESC_DIAGNOSTIC =
+[=[
+Enable/disable diagnostics for error/warnings/etc.
+
+Actions: `disable`, `enable`, `disable-line`, `disable-next-line`
+
+[Names](https://github.com/LuaLS/lua-language-server/blob/cbb6e6224094c4eb874ea192c5f85a6cba099588/script/proto/define.lua#L54)
+
+## Syntax
+`---@diagnostic [: ]`
+
+## Usage
+### Disable next line
+```
+---@diagnostic disable-next-line: undefined-global
+```
+
+### Manually toggle
+```
+---@diagnostic disable: unused-local
+local unused = "hello world"
+---@diagnostic enable: unused-local
+```
+---
+[View Wiki](https://luals.github.io/wiki/annotations#diagnostic)
+]=]
+LUADOC_DESC_MODULE =
+[=[
+Provides the semantics of `require`.
+
+## Syntax
+`---@module <'module_name'>`
+
+## Usage
+```
+---@module 'string.utils'
+local stringUtils
+-- This is functionally the same as:
+local module = require('string.utils')
+```
+---
+[View Wiki](https://luals.github.io/wiki/annotations#module)
+]=]
+LUADOC_DESC_ASYNC =
+[=[
+Marks a function as asynchronous.
+
+## Syntax
+`---@async`
+
+---
+[View Wiki](https://luals.github.io/wiki/annotations#async)
+]=]
+LUADOC_DESC_NODISCARD =
+[=[
+Prevents this function's return values from being discarded/ignored.
+This will raise the `discard-returns` warning should the return values
+be ignored.
+
+## Syntax
+`---@nodiscard`
+
+---
+[View Wiki](https://luals.github.io/wiki/annotations#nodiscard)
+]=]
+LUADOC_DESC_CAST =
+[=[
+Allows type casting (type conversion).
+
+## Syntax
+`@cast <[+|-]type>[, <[+|-]type>]...`
+
+## Usage
+### Overwrite type
+```
+---@type integer
+local x --> integer
+
+---@cast x string
+print(x) --> string
+```
+### Add Type
+```
+---@type string
+local x --> string
+
+---@cast x +boolean, +number
+print(x) --> string|boolean|number
+```
+### Remove Type
+```
+---@type string|table
+local x --> string|table
+
+---@cast x -string
+print(x) --> table
+```
+---
+[View Wiki](https://luals.github.io/wiki/annotations#cast)
+]=]
+LUADOC_DESC_OPERATOR =
+[=[
+Provide type declaration for [operator metamethods](http://lua-users.org/wiki/MetatableEvents).
+
+## Syntax
+`@operator [(input_type)]:`
+
+## Usage
+### Vector Add Metamethod
+```
+---@class Vector
+---@operator add(Vector):Vector
+
+vA = Vector.new(1, 2, 3)
+vB = Vector.new(10, 20, 30)
+
+vC = vA + vB
+--> Vector
+```
+### Unary Minus
+```
+---@class Passcode
+---@operator unm:integer
+
+pA = Passcode.new(1234)
+pB = -pA
+--> integer
+```
+[View Request](https://github.com/LuaLS/lua-language-server/issues/599)
+]=]
+LUADOC_DESC_ENUM =
+[=[
+Mark a table as an enum. If you want an enum but can't define it as a Lua
+table, take a look at the [`@alias`](https://luals.github.io/wiki/annotations#alias)
+tag.
+
+## Syntax
+`@enum `
+
+## Usage
+```
+---@enum colors
+local colors = {
+ white = 0,
+ orange = 2,
+ yellow = 4,
+ green = 8,
+ black = 16,
+}
+
+---@param color colors
+local function setColor(color) end
+
+-- Completion and hover is provided for the below param
+setColor(colors.green)
+```
+]=]
+LUADOC_DESC_SOURCE =
+[=[
+Provide a reference to some source code which lives in another file. When
+searching for the definition of an item, its `@source` will be used.
+
+## Syntax
+`@source `
+
+## Usage
+```
+---You can use absolute paths
+---@source C:/Users/me/Documents/program/myFile.c
+local a
+
+---Or URIs
+---@source file:///C:/Users/me/Documents/program/myFile.c:10
+local b
+
+---Or relative paths
+---@source local/file.c
+local c
+
+---You can also include line and char numbers
+---@source local/file.c:10:8
+local d
+```
+]=]
+LUADOC_DESC_PACKAGE =
+[=[
+Mark a function as private to the file it is defined in. A packaged function
+cannot be accessed from another file.
+
+## Syntax
+`@package`
+
+## Usage
+```
+---@class Animal
+---@field private eyes integer
+local Animal = {}
+
+---@package
+---This cannot be accessed in another file
+function Animal:eyesCount()
+ return self.eyes
+end
+```
+]=]
+LUADOC_DESC_PRIVATE =
+[=[
+Mark a function as private to a @class. Private functions can be accessed only
+from within their class and are not accessible from child classes.
+
+## Syntax
+`@private`
+
+## Usage
+```
+---@class Animal
+---@field private eyes integer
+local Animal = {}
+
+---@private
+function Animal:eyesCount()
+ return self.eyes
+end
+
+---@class Dog:Animal
+local myDog = {}
+
+---NOT PERMITTED!
+myDog:eyesCount();
+```
+]=]
+LUADOC_DESC_PROTECTED =
+[=[
+Mark a function as protected within a @class. Protected functions can be
+accessed only from within their class or from child classes.
+
+## Syntax
+`@protected`
+
+## Usage
+```
+---@class Animal
+---@field private eyes integer
+local Animal = {}
+
+---@protected
+function Animal:eyesCount()
+ return self.eyes
+end
+
+---@class Dog:Animal
+local myDog = {}
+
+---Permitted because function is protected, not private.
+myDog:eyesCount();
+```
+]=]
diff --git a/nvim/mason/packages/lua-language-server/libexec/locale/en-us/setting.lua b/nvim/mason/packages/lua-language-server/libexec/locale/en-us/setting.lua
new file mode 100644
index 0000000..e0ca458
--- /dev/null
+++ b/nvim/mason/packages/lua-language-server/libexec/locale/en-us/setting.lua
@@ -0,0 +1,465 @@
+---@diagnostic disable: undefined-global
+
+config.addonManager.enable =
+"Whether the addon manager is enabled or not."
+config.addonManager.repositoryBranch =
+"Specifies the git branch used by the addon manager."
+config.addonManager.repositoryPath =
+"Specifies the git path used by the addon manager."
+config.runtime.version =
+"Lua runtime version."
+config.runtime.path =
+[[
+When using `require`, how to find the file based on the input name.
+Setting this config to `?/init.lua` means that when you enter `require 'myfile'`, `${workspace}/myfile/init.lua` will be searched from the loaded files.
+if `runtime.pathStrict` is `false`, `${workspace}/**/myfile/init.lua` will also be searched.
+If you want to load files outside the workspace, you need to set `Lua.workspace.library` first.
+]]
+config.runtime.pathStrict =
+'When enabled, `runtime.path` will only search the first level of directories, see the description of `runtime.path`.'
+config.runtime.special =
+[[The custom global variables are regarded as some special built-in variables, and the language server will provide special support
+The following example shows that 'include' is treated as' require '.
+```json
+"Lua.runtime.special" : {
+ "include" : "require"
+}
+```
+]]
+config.runtime.unicodeName =
+"Allows Unicode characters in name."
+config.runtime.nonstandardSymbol =
+"Supports non-standard symbols. Make sure that your runtime environment supports these symbols."
+config.runtime.plugin =
+"Plugin path. Please read [wiki](https://luals.github.io/wiki/plugins) to learn more."
+config.runtime.pluginArgs =
+"Additional arguments for the plugin."
+config.runtime.fileEncoding =
+"File encoding. The `ansi` option is only available under the `Windows` platform."
+config.runtime.builtin =
+[[
+Adjust the enabled state of the built-in library. You can disable (or redefine) the non-existent library according to the actual runtime environment.
+
+* `default`: Indicates that the library will be enabled or disabled according to the runtime version
+* `enable`: always enable
+* `disable`: always disable
+]]
+config.runtime.meta =
+'Format of the directory name of the meta files.'
+config.diagnostics.enable =
+"Enable diagnostics."
+config.diagnostics.disable =
+"Disabled diagnostic (Use code in hover brackets)."
+config.diagnostics.globals =
+"Defined global variables."
+config.diagnostics.globalsRegex =
+"Find defined global variables using regex."
+config.diagnostics.severity =
+[[
+Modify the diagnostic severity.
+
+End with `!` means override the group setting `diagnostics.groupSeverity`.
+]]
+config.diagnostics.neededFileStatus =
+[[
+* Opened: only diagnose opened files
+* Any: diagnose all files
+* None: disable this diagnostic
+
+End with `!` means override the group setting `diagnostics.groupFileStatus`.
+]]
+config.diagnostics.groupSeverity =
+[[
+Modify the diagnostic severity in a group.
+`Fallback` means that diagnostics in this group are controlled by `diagnostics.severity` separately.
+Other settings will override individual settings without end of `!`.
+]]
+config.diagnostics.groupFileStatus =
+[[
+Modify the diagnostic needed file status in a group.
+
+* Opened: only diagnose opened files
+* Any: diagnose all files
+* None: disable this diagnostic
+
+`Fallback` means that diagnostics in this group are controlled by `diagnostics.neededFileStatus` separately.
+Other settings will override individual settings without end of `!`.
+]]
+config.diagnostics.workspaceEvent =
+"Set the time to trigger workspace diagnostics."
+config.diagnostics.workspaceEvent.OnChange =
+"Trigger workspace diagnostics when the file is changed."
+config.diagnostics.workspaceEvent.OnSave =
+"Trigger workspace diagnostics when the file is saved."
+config.diagnostics.workspaceEvent.None =
+"Disable workspace diagnostics."
+config.diagnostics.workspaceDelay =
+"Latency (milliseconds) for workspace diagnostics."
+config.diagnostics.workspaceRate =
+"Workspace diagnostics run rate (%). Decreasing this value reduces CPU usage, but also reduces the speed of workspace diagnostics. The diagnosis of the file you are currently editing is always done at full speed and is not affected by this setting."
+config.diagnostics.libraryFiles =
+"How to diagnose files loaded via `Lua.workspace.library`."
+config.diagnostics.libraryFiles.Enable =
+"Always diagnose these files."
+config.diagnostics.libraryFiles.Opened =
+"Only when these files are opened will it be diagnosed."
+config.diagnostics.libraryFiles.Disable =
+"These files are not diagnosed."
+config.diagnostics.ignoredFiles =
+"How to diagnose ignored files."
+config.diagnostics.ignoredFiles.Enable =
+"Always diagnose these files."
+config.diagnostics.ignoredFiles.Opened =
+"Only when these files are opened will it be diagnosed."
+config.diagnostics.ignoredFiles.Disable =
+"These files are not diagnosed."
+config.diagnostics.disableScheme =
+'Do not diagnose Lua files that use the following scheme.'
+config.diagnostics.unusedLocalExclude =
+'Do not diagnose `unused-local` when the variable name matches the following pattern.'
+config.workspace.ignoreDir =
+"Ignored files and directories (Use `.gitignore` grammar)."-- .. example.ignoreDir,
+config.workspace.ignoreSubmodules =
+"Ignore submodules."
+config.workspace.useGitIgnore =
+"Ignore files list in `.gitignore` ."
+config.workspace.maxPreload =
+"Max preloaded files."
+config.workspace.preloadFileSize =
+"Skip files larger than this value (KB) when preloading."
+config.workspace.library =
+"In addition to the current workspace, which directories will load files from. The files in these directories will be treated as externally provided code libraries, and some features (such as renaming fields) will not modify these files."
+config.workspace.checkThirdParty =
+[[
+Automatic detection and adaptation of third-party libraries, currently supported libraries are:
+
+* OpenResty
+* Cocos4.0
+* LÖVE
+* LÖVR
+* skynet
+* Jass
+]]
+config.workspace.userThirdParty =
+'Add private third-party library configuration file paths here, please refer to the built-in [configuration file path](https://github.com/LuaLS/lua-language-server/tree/master/meta/3rd)'
+config.workspace.supportScheme =
+'Provide language server for the Lua files of the following scheme.'
+config.completion.enable =
+'Enable completion.'
+config.completion.callSnippet =
+'Shows function call snippets.'
+config.completion.callSnippet.Disable =
+"Only shows `function name`."
+config.completion.callSnippet.Both =
+"Shows `function name` and `call snippet`."
+config.completion.callSnippet.Replace =
+"Only shows `call snippet.`"
+config.completion.keywordSnippet =
+'Shows keyword syntax snippets.'
+config.completion.keywordSnippet.Disable =
+"Only shows `keyword`."
+config.completion.keywordSnippet.Both =
+"Shows `keyword` and `syntax snippet`."
+config.completion.keywordSnippet.Replace =
+"Only shows `syntax snippet`."
+config.completion.displayContext =
+"Previewing the relevant code snippet of the suggestion may help you understand the usage of the suggestion. The number set indicates the number of intercepted lines in the code fragment. If it is set to `0`, this feature can be disabled."
+config.completion.workspaceWord =
+"Whether the displayed context word contains the content of other files in the workspace."
+config.completion.showWord =
+"Show contextual words in suggestions."
+config.completion.showWord.Enable =
+"Always show context words in suggestions."
+config.completion.showWord.Fallback =
+"Contextual words are only displayed when suggestions based on semantics cannot be provided."
+config.completion.showWord.Disable =
+"Do not display context words."
+config.completion.autoRequire =
+"When the input looks like a file name, automatically `require` this file."
+config.completion.showParams =
+"Display parameters in completion list. When the function has multiple definitions, they will be displayed separately."
+config.completion.requireSeparator =
+"The separator used when `require`."
+config.completion.postfix =
+"The symbol used to trigger the postfix suggestion."
+config.color.mode =
+"Color mode."
+config.color.mode.Semantic =
+"Semantic color. You may need to set `editor.semanticHighlighting.enabled` to `true` to take effect."
+config.color.mode.SemanticEnhanced =
+"Enhanced semantic color. Like `Semantic`, but with additional analysis which might be more computationally expensive."
+config.color.mode.Grammar =
+"Grammar color."
+config.semantic.enable =
+"Enable semantic color. You may need to set `editor.semanticHighlighting.enabled` to `true` to take effect."
+config.semantic.variable =
+"Semantic coloring of variables/fields/parameters."
+config.semantic.annotation =
+"Semantic coloring of type annotations."
+config.semantic.keyword =
+"Semantic coloring of keywords/literals/operators. You only need to enable this feature if your editor cannot do syntax coloring."
+config.signatureHelp.enable =
+"Enable signature help."
+config.hover.enable =
+"Enable hover."
+config.hover.viewString =
+"Hover to view the contents of a string (only if the literal contains an escape character)."
+config.hover.viewStringMax =
+"The maximum length of a hover to view the contents of a string."
+config.hover.viewNumber =
+"Hover to view numeric content (only if literal is not decimal)."
+config.hover.fieldInfer =
+"When hovering to view a table, type infer will be performed for each field. When the accumulated time of type infer reaches the set value (MS), the type infer of subsequent fields will be skipped."
+config.hover.previewFields =
+"When hovering to view a table, limits the maximum number of previews for fields."
+config.hover.enumsLimit =
+"When the value corresponds to multiple types, limit the number of types displaying."
+config.hover.expandAlias =
+[[
+Whether to expand the alias. For example, expands `---@alias myType boolean|number` appears as `boolean|number`, otherwise it appears as `myType'.
+]]
+config.develop.enable =
+'Developer mode. Do not enable, performance will be affected.'
+config.develop.debuggerPort =
+'Listen port of debugger.'
+config.develop.debuggerWait =
+'Suspend before debugger connects.'
+config.intelliSense.searchDepth =
+'Set the search depth for IntelliSense. Increasing this value increases accuracy, but decreases performance. Different workspace have different tolerance for this setting. Please adjust it to the appropriate value.'
+config.intelliSense.fastGlobal =
+'In the global variable completion, and view `_G` suspension prompt. This will slightly reduce the accuracy of type speculation, but it will have a significant performance improvement for projects that use a lot of global variables.'
+config.window.statusBar =
+'Show extension status in status bar.'
+config.window.progressBar =
+'Show progress bar in status bar.'
+config.hint.enable =
+'Enable inlay hint.'
+config.hint.paramType =
+'Show type hints at the parameter of the function.'
+config.hint.setType =
+'Show hints of type at assignment operation.'
+config.hint.paramName =
+'Show hints of parameter name at the function call.'
+config.hint.paramName.All =
+'All types of parameters are shown.'
+config.hint.paramName.Literal =
+'Only literal type parameters are shown.'
+config.hint.paramName.Disable =
+'Disable parameter hints.'
+config.hint.arrayIndex =
+'Show hints of array index when constructing a table.'
+config.hint.arrayIndex.Enable =
+'Show hints in all tables.'
+config.hint.arrayIndex.Auto =
+'Show hints only when the table is greater than 3 items, or the table is a mixed table.'
+config.hint.arrayIndex.Disable =
+'Disable hints of array index.'
+config.hint.await =
+'If the called function is marked `---@async`, prompt `await` at the call.'
+config.hint.awaitPropagate =
+'Enable the propagation of `await`. When a function calls a function marked `---@async`,\z
+it will be automatically marked as `---@async`.'
+config.hint.semicolon =
+'If there is no semicolon at the end of the statement, display a virtual semicolon.'
+config.hint.semicolon.All =
+'All statements display virtual semicolons.'
+config.hint.semicolon.SameLine =
+'When two statements are on the same line, display a semicolon between them.'
+config.hint.semicolon.Disable =
+'Disable virtual semicolons.'
+config.codeLens.enable =
+'Enable code lens.'
+config.format.enable =
+'Enable code formatter.'
+config.format.defaultConfig =
+[[
+The default format configuration. Has a lower priority than `.editorconfig` file in the workspace.
+Read [formatter docs](https://github.com/CppCXY/EmmyLuaCodeStyle/tree/master/docs) to learn usage.
+]]
+config.spell.dict =
+'Custom words for spell checking.'
+config.nameStyle.config =
+'Set name style config'
+config.telemetry.enable =
+[[
+Enable telemetry to send your editor information and error logs over the network. Read our privacy policy [here](https://luals.github.io/privacy/#language-server).
+]]
+config.misc.parameters =
+'[Command line parameters](https://github.com/LuaLS/lua-telemetry-server/tree/master/method) when starting the language server in VSCode.'
+config.misc.executablePath =
+'Specify the executable path in VSCode.'
+config.language.fixIndent =
+'(VSCode only) Fix incorrect auto-indentation, such as incorrect indentation when line breaks occur within a string containing the word "function."'
+config.language.completeAnnotation =
+'(VSCode only) Automatically insert "---@ " after a line break following a annotation.'
+config.type.castNumberToInteger =
+'Allowed to assign the `number` type to the `integer` type.'
+config.type.weakUnionCheck =
+[[
+Once one subtype of a union type meets the condition, the union type also meets the condition.
+
+When this setting is `false`, the `number|boolean` type cannot be assigned to the `number` type. It can be with `true`.
+]]
+config.type.weakNilCheck =
+[[
+When checking the type of union type, ignore the `nil` in it.
+
+When this setting is `false`, the `number|nil` type cannot be assigned to the `number` type. It can be with `true`.
+]]
+config.type.inferParamType =
+[[
+When a parameter type is not annotated, it is inferred from the function's call sites.
+
+When this setting is `false`, the type of the parameter is `any` when it is not annotated.
+]]
+config.type.checkTableShape =
+[[
+Strictly check the shape of the table.
+]]
+config.doc.privateName =
+'Treat specific field names as private, e.g. `m_*` means `XXX.m_id` and `XXX.m_type` are private, witch can only be accessed in the class where the definition is located.'
+config.doc.protectedName =
+'Treat specific field names as protected, e.g. `m_*` means `XXX.m_id` and `XXX.m_type` are protected, witch can only be accessed in the class where the definition is located and its subclasses.'
+config.doc.packageName =
+'Treat specific field names as package, e.g. `m_*` means `XXX.m_id` and `XXX.m_type` are package, witch can only be accessed in the file where the definition is located.'
+config.diagnostics['unused-local'] =
+'Enable unused local variable diagnostics.'
+config.diagnostics['unused-function'] =
+'Enable unused function diagnostics.'
+config.diagnostics['undefined-global'] =
+'Enable undefined global variable diagnostics.'
+config.diagnostics['global-in-nil-env'] =
+'Enable cannot use global variables ( `_ENV` is set to `nil`) diagnostics.'
+config.diagnostics['unused-label'] =
+'Enable unused label diagnostics.'
+config.diagnostics['unused-vararg'] =
+'Enable unused vararg diagnostics.'
+config.diagnostics['trailing-space'] =
+'Enable trailing space diagnostics.'
+config.diagnostics['redefined-local'] =
+'Enable redefined local variable diagnostics.'
+config.diagnostics['newline-call'] =
+'Enable newline call diagnostics. Is\'s raised when a line starting with `(` is encountered, which is syntactically parsed as a function call on the previous line.'
+config.diagnostics['newfield-call'] =
+'Enable newfield call diagnostics. It is raised when the parenthesis of a function call appear on the following line when defining a field in a table.'
+config.diagnostics['redundant-parameter'] =
+'Enable redundant function parameter diagnostics.'
+config.diagnostics['ambiguity-1'] =
+'Enable ambiguous operator precedence diagnostics. For example, the `num or 0 + 1` expression will be suggested `(num or 0) + 1` instead.'
+config.diagnostics['lowercase-global'] =
+'Enable lowercase global variable definition diagnostics.'
+config.diagnostics['undefined-env-child'] =
+'Enable undefined environment variable diagnostics. It\'s raised when `_ENV` table is set to a new literal table, but the used global variable is no longer present in the global environment.'
+config.diagnostics['duplicate-index'] =
+'Enable duplicate table index diagnostics.'
+config.diagnostics['empty-block'] =
+'Enable empty code block diagnostics.'
+config.diagnostics['redundant-value'] =
+'Enable the redundant values assigned diagnostics. It\'s raised during assignment operation, when the number of values is higher than the number of objects being assigned.'
+config.diagnostics['assign-type-mismatch'] =
+'Enable diagnostics for assignments in which the value\'s type does not match the type of the assigned variable.'
+config.diagnostics['await-in-sync'] =
+'Enable diagnostics for calls of asynchronous functions within a synchronous function.'
+config.diagnostics['cast-local-type'] =
+'Enable diagnostics for casts of local variables where the target type does not match the defined type.'
+config.diagnostics['cast-type-mismatch'] =
+'Enable diagnostics for casts where the target type does not match the initial type.'
+config.diagnostics['circular-doc-class'] =
+'Enable diagnostics for two classes inheriting from each other introducing a circular relation.'
+config.diagnostics['close-non-object'] =
+'Enable diagnostics for attempts to close a variable with a non-object.'
+config.diagnostics['code-after-break'] =
+'Enable diagnostics for code placed after a break statement in a loop.'
+config.diagnostics['codestyle-check'] =
+'Enable diagnostics for incorrectly styled lines.'
+config.diagnostics['count-down-loop'] =
+'Enable diagnostics for `for` loops which will never reach their max/limit because the loop is incrementing instead of decrementing.'
+config.diagnostics['deprecated'] =
+'Enable diagnostics to highlight deprecated API.'
+config.diagnostics['different-requires'] =
+'Enable diagnostics for files which are required by two different paths.'
+config.diagnostics['discard-returns'] =
+'Enable diagnostics for calls of functions annotated with `---@nodiscard` where the return values are ignored.'
+config.diagnostics['doc-field-no-class'] =
+'Enable diagnostics to highlight a field annotation without a defining class annotation.'
+config.diagnostics['duplicate-doc-alias'] =
+'Enable diagnostics for a duplicated alias annotation name.'
+config.diagnostics['duplicate-doc-field'] =
+'Enable diagnostics for a duplicated field annotation name.'
+config.diagnostics['duplicate-doc-param'] =
+'Enable diagnostics for a duplicated param annotation name.'
+config.diagnostics['duplicate-set-field'] =
+'Enable diagnostics for setting the same field in a class more than once.'
+config.diagnostics['incomplete-signature-doc'] =
+'Incomplete @param or @return annotations for functions.'
+config.diagnostics['invisible'] =
+'Enable diagnostics for accesses to fields which are invisible.'
+config.diagnostics['missing-global-doc'] =
+'Missing annotations for globals! Global functions must have a comment and annotations for all parameters and return values.'
+config.diagnostics['missing-local-export-doc'] =
+'Missing annotations for exported locals! Exported local functions must have a comment and annotations for all parameters and return values.'
+config.diagnostics['missing-parameter'] =
+'Enable diagnostics for function calls where the number of arguments is less than the number of annotated function parameters.'
+config.diagnostics['missing-return'] =
+'Enable diagnostics for functions with return annotations which have no return statement.'
+config.diagnostics['missing-return-value'] =
+'Enable diagnostics for return statements without values although the containing function declares returns.'
+config.diagnostics['need-check-nil'] =
+'Enable diagnostics for variable usages if `nil` or an optional (potentially `nil`) value was assigned to the variable before.'
+config.diagnostics['unnecessary-assert'] =
+'Enable diagnostics for redundant assertions on truthy values.'
+config.diagnostics['no-unknown'] =
+'Enable diagnostics for cases in which the type cannot be inferred.'
+config.diagnostics['not-yieldable'] =
+'Enable diagnostics for calls to `coroutine.yield()` when it is not permitted.'
+config.diagnostics['param-type-mismatch'] =
+'Enable diagnostics for function calls where the type of a provided parameter does not match the type of the annotated function definition.'
+config.diagnostics['redundant-return'] =
+'Enable diagnostics for return statements which are not needed because the function would exit on its own.'
+config.diagnostics['redundant-return-value']=
+'Enable diagnostics for return statements which return an extra value which is not specified by a return annotation.'
+config.diagnostics['return-type-mismatch'] =
+'Enable diagnostics for return values whose type does not match the type declared in the corresponding return annotation.'
+config.diagnostics['spell-check'] =
+'Enable diagnostics for typos in strings.'
+config.diagnostics['name-style-check'] =
+'Enable diagnostics for name style.'
+config.diagnostics['unbalanced-assignments']=
+'Enable diagnostics on multiple assignments if not all variables obtain a value (e.g., `local x,y = 1`).'
+config.diagnostics['undefined-doc-class'] =
+'Enable diagnostics for class annotations in which an undefined class is referenced.'
+config.diagnostics['undefined-doc-name'] =
+'Enable diagnostics for type annotations referencing an undefined type or alias.'
+config.diagnostics['undefined-doc-param'] =
+'Enable diagnostics for cases in which a parameter annotation is given without declaring the parameter in the function definition.'
+config.diagnostics['undefined-field'] =
+'Enable diagnostics for cases in which an undefined field of a variable is read.'
+config.diagnostics['unknown-cast-variable'] =
+'Enable diagnostics for casts of undefined variables.'
+config.diagnostics['unknown-diag-code'] =
+'Enable diagnostics in cases in which an unknown diagnostics code is entered.'
+config.diagnostics['unknown-operator'] =
+'Enable diagnostics for unknown operators.'
+config.diagnostics['unreachable-code'] =
+'Enable diagnostics for unreachable code.'
+config.diagnostics['global-element'] =
+'Enable diagnostics to warn about global elements.'
+config.typeFormat.config =
+'Configures the formatting behavior while typing Lua code.'
+config.typeFormat.config.auto_complete_end =
+'Controls if `end` is automatically completed at suitable positions.'
+config.typeFormat.config.auto_complete_table_sep =
+'Controls if a separator is automatically appended at the end of a table declaration.'
+config.typeFormat.config.format_line =
+'Controls if a line is formatted at all.'
+
+command.exportDocument =
+'Lua: Export Document ...'
+command.addon_manager.open =
+'Lua: Open Addon Manager ...'
+command.reloadFFIMeta =
+'Lua: Reload luajit ffi meta'
+command.startServer =
+'Lua: Restart Language Server'
+command.stopServer =
+'Lua: Stop Language Server'
diff --git a/nvim/mason/packages/lua-language-server/libexec/locale/es-419/meta.lua b/nvim/mason/packages/lua-language-server/libexec/locale/es-419/meta.lua
new file mode 100644
index 0000000..a507704
--- /dev/null
+++ b/nvim/mason/packages/lua-language-server/libexec/locale/es-419/meta.lua
@@ -0,0 +1,764 @@
+---@diagnostic disable: undefined-global, lowercase-global
+
+arg =
+'Argumentos de lÃnea de comandos para Lua Standalone.'
+
+assert =
+'Alsa un error si el valor de sus argumentos es falso. (ej: `nil` ó `falso`); de lo contrario, retorna todos sus argumentos. En caso de error, `message` es el mensaje de error; cuando se omite, el valor predeterminado es `"assertion failed!"`'
+
+cgopt.collect =
+'Realiza un ciclo completo de recolección de basura.'
+cgopt.stop =
+'Detiene la ejecución automática.'
+cgopt.restart =
+'Reinicia la ejecución automática.'
+cgopt.count =
+'Retorna el total de memoria en Kbytes.'
+cgopt.step =
+'Realiza un paso de recolección de basura.'
+cgopt.setpause =
+'Establece la pausa.'
+cgopt.setstepmul =
+'Establece el multiplicador para el paso de recolección de basura.'
+cgopt.incremental =
+'Cambia el modo de recolección a incremental.'
+cgopt.generational =
+'Cambia el modo de recolección a generacional.'
+cgopt.isrunning =
+'Retorna si el recolector está corriendo.'
+
+collectgarbage =
+'Esta función es una interfaz genérica al recolector de basura. Realiza diferentes funcionalidades según su primer argumento `opt`'
+
+dofile =
+'Abre el archivo mencionado y ejecuta su contenido como un bloque Lua. Cuando es llamada sin argumentos, `dofile` ejecuta el contenido de la entrada estándar (`stdin`). Retorna todos los valores retornado por el bloque. En caso de error `dofile` propaga el error a la función que la llama. (Eso sÃ, `dofile` no corre en modo protegido.)'
+
+error =
+[[
+Termina la última función llamada y retorna el mensaje como el objecto de error.
+Normalmente `error` tiene información extra acerca la posición del error al inicio del mensaje, si es que éste es un string.
+]]
+
+_G =
+'Una variable global (no una función) que tiene el ambiente global (véase §2.2). Esta variable no se ocupa en Lua mismo; el cambiar su valor no afecta a ningún ambiente y vice-versa.'
+
+getfenv =
+'Retorna el ambiente que usa la función actualmente. `f` puede ser una función de Lua o un número que especifica la función en ese nivel de la pila de llamadas.'
+
+getmetatable =
+'Si el objecto no tiene una metatabla, returna nil. Si no, si la metatabla del objeto tiene un campo __metatable, retorna el valor asociado. Si tampoco es asÃ, retorna la metatabla del objeto dado.'
+
+ipairs =
+[[
+Retorna tres valores (una función iteradora, la tabla `t` y `0`) cosa que la estructura
+```lua
+ for i,v in ipairs(t) do body end
+```
+itera sobre los pares clave-valor `(1,t[1]), (2,t[2]), ...`, hasta el primer Ãndice ausente.
+]]
+
+loadmode.b =
+'Solo bloques binarios.'
+loadmode.t =
+'Solo bloques de texto.'
+loadmode.bt =
+'Bloques binarios y de texto.'
+
+load['<5.1'] =
+'Carga un bloque usando la función `func` para obtener sus partes. Cada llamada a `func` debe retornar un string que se concatena con los resultados anteriores.'
+load['>5.2'] =
+[[
+Carga un bloque.
+
+Si `chunk` es un string, el bloque es este string. Si `chunk` es una función, entonces `load` la llama repetidas veces para obtener las partes del bloque. Cada llamada a `chunk` debe retornar un string que se concatena con los resultados anteriores. El retornar un string vacÃo, `nil` ó ningún valor señala el fin del bloque.
+]]
+
+loadfile =
+'Carga un bloque del archivo `filename` o de la entrada estándar, si es que no se provee un nombre de archivo.'
+
+loadstring =
+'Carga un bloque del string dado.'
+
+module =
+'Crea un módulo.'
+
+next =
+[[
+Le permite a un programa recorrer todos los campos de una tabla. El primer argumento es una tabla y el segundo es un Ãndice de ésta. Un llamado a `next` retorna el siguiente Ãndice de la tabla y su valor asociado. Cuando se llama con `nil` como segundo argumento, `next` retorna un Ãndicie inicial y su valor asociado. Cuando se llama con el último Ãndice, o con `nil` en una tabla vacÃa, `next` retorna `nil`. Si se omite el segundo argumento, entonces se le interpreta como `nil`. En particular, se puede llamara a `next(t)` para chequear si la tabla está vacÃa.
+
+El orden en el cual los Ãndices son enumerados no está especificado, *incluso para Ãndices numéricos*. (Para recorrer una tabla en orden numérico, se debe usar un `for` numérico.)
+
+El comportamiento de `next` no está definido si, durante un recorrido, se le asigna algún valor a un campo no existente de la tabla. Sin embargo, sà se pueden modificar los campos existentes. En particular, se pueden asignar campos existentes a `nil`.
+]]
+
+pairs =
+[[
+Si `t` tiene un metamétodo `__pairs`, la llama con t como argumento y retorna los primeros tres resultados de la llamada.
+
+Caso contrario, retorna tres valores: la función $next, la tabla `t`, y `nil` para que el bloque
+```lua
+ for k,v in pairs(t) do body end
+```
+itere sobre todos los pares clave-valor de la tabla `t`.
+
+Vea la función $next para más detalles acerca de las limitaciones al modificar la tabla mientras se le recorre.
+]]
+
+pcall =
+[[
+Llama a la función `f` con los argumentos provistos en *modo protegido*. Esto significa que cualquier error que ocurra dentro de `f` no es propagado; en vez de eso, `pcall` atrapa el error y retorna un código de estado. El primer resultado es el código de estado (verdadero/falso), si éste es verdadero, entonces la llamada fue completada sin errores. En tal caso, `pcall` también retorna todos los resultados de la llamada, después de este primer resultado. En caso de error, `pcall` retorna `false` junto al objeto de error.
+]]
+
+print =
+[[
+Recibe cualquier número de argumentos e imprime sus valores a la salida estándar `stdout`, convirtiendo cada argumento a texto siguiendo las mismas reglas de $tostring.
+La función `print` no está hecha para una salida formateada, si no que solo como una manera rápida de mostrar un valor, por ejemplo, para depurar. Para un control completo sobre la salida use $string.format e $io.write.
+]]
+
+rawequal =
+'Revisa que v1 sea igual a v2, sin llamar al metamétodo `__eq`.'
+
+rawget =
+'Obtiene el valor real de `table[index]`, sin llamar al metamétodo `__index`.'
+
+rawlen =
+'Retorna el largo del objeto `v`, sin invocar al metamétodo `__len`.'
+
+rawset =
+[[
+Asigna el valor real de `table[index]` a `value`, sin usar el metavalor `__newindex`. `table` debe ser una tabla, `index` cualquier valor distinto de `nil` y `NaN`, y `value` cualquier valor de Lua.
+Esta función retorna `table`.
+]]
+
+select =
+'Si `index` es un número retorna todos los argumentos que siguen al `index`-ésimo argumento; un número negativo indiza desde el final (`-1` es el último argumento). Caso contrario, `index` debe ser el texto `"#"` y `select` retorna el número total de argumentos extra recibidos.'
+
+setfenv =
+'Asigna el ambiente para ser usado para la función provista.'
+
+setmetatable =
+[[
+Asigna la metatabla para la tabla provista. Si `metatable` is `nil`, remueve la metatabla de tabla provista. Si la tabla original tiene un campo `__metatable`, alza un error.
+
+Esta función retorna `table`.
+
+Para cambiar la metatabla de otros tipos desde código Lua, se debe usar la biblioteca de depuración (§6.10).
+]]
+
+tonumber =
+[[
+Cuando se llama sin `base`, `toNumber` intenta convertir el argumento a un número. Si el argumento ya es un número o un texto convertible a un número, entonces `tonumber` retorna este número; si no es el caso, retorna `fail`
+
+La conversión de strings puede resultar en enteros o flotantes, de acuerdo a las convenciones léxicas de Lua (véase §3.1). El string puede tener espacios al principio, al final y tener un signo.
+]]
+
+tostring =
+[[
+Recibe un valor de cualquier tipo y lo convierte en un string en un formato legible.
+
+Si la metatabla de `v` tiene un campo `__tostring`, entonces `tostring` llama al valor correspondiente con `v` como argumento y usa el resultado de la llamada como su resultado. Si no lo tiene y si la metatabla de `v` tiene un campo `__name` con un valor de tipo string, `tostring` podrÃa ocupar este valor en su resultado final.
+
+Para un control completo de cómo se convierten los números, use $string.format.
+]]
+
+type =
+[[
+Retorna el tipo de su único argumento, codificado como string. Los resultados posibles de esta función son `"nil"` (un string, no el valor `nil`), `"number"`, `"string"`, `"boolean"`, `"table"`, `"function"`, `"thread"`, y `"userdata"`.
+]]
+
+_VERSION =
+'Una variable global (no una función) que contiene un string con la versión de Lua en ejecución.'
+
+warn =
+'Emite una advertencia con un mensaje compuesto por la concatenación de todos sus argumentos (todos estos deben ser strings).'
+
+xpcall['=5.1'] =
+'Llama a la función `f` con los argumentos provistos en modo protegido con un nuevo manejador de mensaje.'
+xpcall['>5.2'] =
+'Llama a la función `f` con los argumentos provistos en modo protegido con un nuevo manejador de mensaje.'
+
+unpack =
+[[
+Retorna los elementos de la lista provista. Esta función es equivalente a
+```lua
+ return list[i], list[i+1], ···, list[j]
+```
+]]
+
+bit32 =
+''
+bit32.arshift =
+[[
+Retorna el número `x` desplazado `disp` bits a la derecha. Los desplazamientos negativos lo hacen a la izquierda.
+
+Esta operación de desplazamiento es lo que se llama desplazamiento aritmético. Los bits vacÃos del lado izquierdo se llenan con copias del bit más alto de `x`; los bits vacÃos del lado derecho se llenan con ceros.
+]]
+bit32.band =
+'Retorna la operación lógica *and* de sus operandos.'
+bit32.bnot =
+[[
+Retorna la negación lógica de `x` a nivel de bits.
+
+```lua
+assert(bit32.bnot(x) ==
+(-1 - x) % 2^32)
+```
+]]
+bit32.bor =
+'Retorna la operación lógica *or* de sus operandos.'
+bit32.btest =
+'Retorna un booleano señalando si la operación lógica *and* a nivel de bits de sus operandos es diferente de cero.'
+bit32.bxor =
+'Retorna la operación lógica *xor* de sus operandos.'
+bit32.extract =
+'Retorna el número sin signo formado por los bits `field` hasta `field + width - 1` desde `n`.'
+bit32.replace =
+'Retorna una copia de `n` con los bits `field` a `field + width - 1` remplazados por el valor `v` .'
+bit32.lrotate =
+'Retorna el número `x` rotado `disp` bits a la izquierda. Las rotaciones negativas lo hacen a la derecha.'
+bit32.lshift =
+[[
+Retorna el número `x` desplazado `disp` bits a la izquierda. Los desplazamientos negativos lo hacen a la derecha. En cualquier dirección, los bits vacÃos se llenan con ceros.
+
+```lua
+assert(bit32.lshift(b, disp) ==
+(b * 2^disp) % 2^32)
+```
+]]
+bit32.rrotate =
+'Retorna el número `x` rotado `disp` bits a la derecha. Las rotaciones negativas lo hacen a la izquierda.'
+bit32.rshift =
+[[
+Retorna el número `x` desplazado `disp` bits a la derecha. Los desplazamientos negativos lo hacen a la izquierda. En cualquier dirección, los bits vacÃos se llenan con ceros.
+
+```lua
+assert(bit32.rshift(b, disp) ==
+math.floor(b % 2^32 / 2^disp))
+```
+]]
+
+coroutine =
+''
+coroutine.create =
+'Crea una co-rutina nueva con cuerpo `f`. `f` debe ser una función. Retorna esta nueva co-rutina, un objeto con tipo `thread`.'
+coroutine.isyieldable =
+'Retorna verdadero cuando la co-rutina en ejecución puede suspenderse cediendo el control.'
+coroutine.isyieldable['>5.4']=
+'Retorna verdadero cuando la co-rutina `co` puede suspenderse cediendo el control. El valor predeterminado para `co` es la co-rutina actualmente en ejecución.'
+coroutine.close =
+'Cierra la co-rutina `co`, cerrando todas sus variables prontas a cerrarse, dejando la co-rutina en un estado muerto.'
+coroutine.resume =
+'Empieza o continua la ejecución de la co-rutina `co`.'
+coroutine.running =
+'Retorna la co-rutina en ejecución con un booleano adicional, señalando si la co-rutina en ejecución es la principal.'
+coroutine.status =
+'Retorna el estado de la co-rutina `co`.'
+coroutine.wrap =
+'Crea una co-rutina nueva con cuerpo `f`; `f` debe ser una función. Retorna una función que resume la co-rutina cada vez que se le llama.'
+coroutine.yield =
+'Suspende la ejecución de la co-rutina que le llama, cediendo el control.'
+
+costatus.running =
+'Está corriendo.'
+costatus.suspended =
+'Está suspendida o no ha empezado.'
+costatus.normal =
+'Está activa, pero no en ejecución.'
+costatus.dead =
+'Ha terminado o se detuvo con un error.'
+
+debug =
+''
+debug.debug =
+'Entra a un modo interactivo con el usuario, ejecutando cada string que el usuario ingrese.'
+debug.getfenv =
+'Retorna el ambiente del objeto `o` .'
+debug.gethook =
+'Retorna las configuraciones `hook` de la hebra.'
+debug.getinfo =
+'Retorna una tabla con información acerca de una función.'
+debug.getlocal['<5.1'] =
+'Retorna el nombre y el valor de la variable local con Ãndice `local` de la función en el nivel `level` de la pila.'
+debug.getlocal['>5.2'] =
+'Retorna el nombre y el valor de la variable local con Ãndice `local` de la función en el nivel `f` de la pila.'
+debug.getmetatable =
+'Retorna la metatabla del valor provisto.'
+debug.getregistry =
+'Retorna la tabla de registro.'
+debug.getupvalue =
+'Retorna el nombre y el valor de la variable anterior con Ãndice `up` de la función.'
+debug.getuservalue['<5.3'] =
+'Retorna el valor de Lua asociado a u.'
+debug.getuservalue['>5.4'] =
+[[
+Retorna el `n`-ésimo valor asociado
+a la data de usuario `u` con un booleano adicional,
+`false` si la data de usuario no tiene ese valor.
+]]
+debug.setcstacklimit =
+[[
+### **Obsoleto desde `Lua 5.4.2`**
+
+Asigna un lÃmite nuevo para la pila C. Este lÃmite controla qué tan profundo pueden llegar las llamadas anidadas en Lua con la intención de evitar un desbordamiento de la pila (stack overflow).
+
+En caso de éxito, esta función retorna el lÃmite anterior. En caso de error, retorna `false`.
+]]
+debug.setfenv =
+'Asigna el ambiente del objeto `object` provisto a la tabla `table` provista.'
+debug.sethook =
+'Asigna la función provista como un `hook`.'
+debug.setlocal =
+'Asigna el valor `value` a la variable local con Ãndice `local` de la función en el nivel `level` de la pila.'
+debug.setmetatable =
+'Asigna la metatabla del valor provisto a la tabla provista (la cual puede ser `nil`).'
+debug.setupvalue =
+'Asigna el valor `value` al valor anterior con Ãndice `up` de la función.'
+debug.setuservalue['<5.3'] =
+'Asigna el valor provisto como el valor de Lua asociado a la provista data de usuario `udata`.'
+debug.setuservalue['>5.4'] =
+[[
+Asigna el valor `value` como
+el `n`-ésimo valor asociado a la data de usuario `udata` provista.
+`udata` debe ser data de usuario completa.
+]]
+debug.traceback =
+'Retorna un string con la traza de la pila de llamadas. El string de mensaje opcional está anexado al principio de la traza.'
+debug.upvalueid =
+'Retorna un identificador único (como data de usuario ligera) para el valor anterior número `n` de la función provista.'
+debug.upvaluejoin =
+'Hace que el `n1`-ésimo valor anterior de la clausura de Lua `f1` se refiera a el `n2`-ésimo valor anterior de la clausura de Lua `f2`.'
+
+infowhat.n =
+'`name` y `namewhat`'
+infowhat.S =
+'`source`, `short_src`, `linedefined`, `lastlinedefined`, y `what`'
+infowhat.l =
+'`currentline`'
+infowhat.t =
+'`istailcall`'
+infowhat.u['<5.1'] =
+'`nups`'
+infowhat.u['>5.2'] =
+'`nups`, `nparams`, y `isvararg`'
+infowhat.f =
+'`func`'
+infowhat.r =
+'`ftransfer` y `ntransfer`'
+infowhat.L =
+'`activelines`'
+
+hookmask.c =
+'Llama al hook cuando se llama a una función desde Lua.'
+hookmask.r =
+'Llama al hook cuand se retorna de una función desde Lua.'
+hookmask.l =
+'Llama al hook cuand se entra a una nueva lÃnea de código desde Lua.'
+
+file =
+''
+file[':close'] =
+'Cierra el archivo `file`.'
+file[':flush'] =
+'Guarda la data escrita al archivo `file`.'
+file[':lines'] =
+[[
+------
+```lua
+for c in file:lines(...) do
+ body
+end
+```
+]]
+file[':read'] =
+'Lee el archivo `file`, de acuerdo a los formatos provistos, los cuales especifican qué leer.'
+file[':seek'] =
+'Fija y obtiene la posición del archivo, a contar del principio del archivo.'
+file[':setvbuf'] =
+'Fija el modo de buffer para un archivo de salida.'
+file[':write'] =
+'Escribe el valor de cada uno de sus argumentos al archivo`file`.'
+
+readmode.n =
+'Lee un numeral y lo devuelve como un número.'
+readmode.a =
+'Lee todo el archivo.'
+readmode.l =
+'Lee la siguiente lÃnea, saltándose el fin-de-lÃnea.'
+readmode.L =
+'Lee la siguiente lÃnea, manteniendo el fin-de-lÃnea.'
+
+seekwhence.set =
+'Sitúa la posición base está al inicio del archivo.'
+seekwhence.cur =
+'Sitúa la posición base en la actual.'
+
+seekwhence['.end'] =
+'Sitúa la posición base al final del archivo.'
+
+vbuf.no =
+'La salida de la operación aparece de inmediato.'
+vbuf.full =
+'Realizado solo cuando el `buffer` está lleno.'
+vbuf.line =
+'Almacenado en el `buffer` hasta que se encuentra un salto de lÃnea en la salida.'
+
+io =
+''
+io.stdin =
+'Entrada estándar.'
+io.stdout =
+'Salida estándar.'
+io.stderr =
+'Salida de error estándar.'
+io.close =
+'Cierra el archivo `file` o el archivo de salida predeterminado.'
+io.flush =
+'Guarda la data escrita al archivo de salida predeterminado.'
+io.input =
+'Asigna `file` como el archivo de entrada predeterminado.'
+io.lines =
+[[
+------
+```lua
+for c in io.lines(filename, ...) do
+ body
+end
+```
+]]
+io.open =
+'Abre un archivo en el modo especificado en el string `mode`.'
+io.output =
+'Asigna `file` como el archivo de salida predeterminado.'
+io.popen =
+'Inicia el programa provisto como un proceso separado.'
+io.read =
+'Lee el archivo de acuerdo a los formatos provistos, los cuales especifican qué leer.'
+io.tmpfile =
+'En caso de éxito retorna un descriptor de archvivo a un archivo temporal.'
+io.type =
+'Verifica si el objeto `obj` es un descriptor de archivo válido.'
+io.write =
+'Escribe el valor de cada uno de sus argumentos al archivo de salida predeterminado.'
+
+openmode.r =
+'Modo de lectura.'
+openmode.w =
+'Modo de escritura.'
+openmode.a =
+'Modo de agregado.'
+openmode['.r+'] =
+'Modo de actualización, toda data existente es preservada.'
+openmode['.w+'] =
+'Modo de actualización, toda data existente es borrada.'
+openmode['.a+'] =
+'Modo de agregado y actualización, toda data existente es preservada, la escritura solo es permitida al final del archivo.'
+openmode.rb =
+'Modo de lectura. (en modo binario)'
+openmode.wb =
+'Modo de escritura. (en modo binario)'
+openmode.ab =
+'Modo de agregado. (en modo binario)'
+openmode['.r+b'] =
+'Modo de actualización, toda data existente es preservada. (en modo binario)'
+openmode['.w+b'] =
+'Modo de actualización, toda data existente es borrada. (en modo binario)'
+openmode['.a+b'] =
+'Modo de agregado y actualización, toda data existente es preservada, la escritura solo es permitida al final del archivo. (en modo binario)'
+
+popenmode.r =
+'Lee data the este programa por archivo `file`.'
+popenmode.w =
+'Escribe data the este programa por archivo `file`.'
+
+filetype.file =
+'Es un descriptor de archivo abierto.'
+filetype['.closed file'] =
+'Es un descriptor de archivo cerrado.'
+filetype['.nil'] =
+'No es un descriptor de archivo.'
+
+math =
+''
+math.abs =
+'Retorna el valor absoluto de `x`.'
+math.acos =
+'Retorna el arcocoseno de `x` (en radianes).'
+math.asin =
+'Retorna el arcoseno de `x` (en radianes).'
+math.atan['<5.2'] =
+'Retorna el arcotangente de `x` (en radianes).'
+math.atan['>5.3'] =
+'Retorna el arcotangente de `y/x` (en radianes).'
+math.atan2 =
+'Retorna el arcotangente de `y/x` (en radianes).'
+math.ceil =
+'Retorna el menor valor integral mayor o igual a `x`.'
+math.cos =
+'Retorna el coseno de `x` (se asume que está en radianes).'
+math.cosh =
+'Retorna el coseno hiperbólico de `x` (se asume que está en radianes).'
+math.deg =
+'Convierte el ángulo `x` de radianes a grados.'
+math.exp =
+'Retorna el valor `e^x` (donde `e` es la base del logaritmo natural).'
+math.floor =
+'Retorna el mayor valor integral más menor o igual a `x`.'
+math.fmod =
+'Retorna el resto de la división de `x` por `y` que redondea el cuociente hacia cero.'
+math.frexp =
+'Descompone `x` en mantisa y exponente. Retorna `m` y `e` tal que `x = m * (2 ^ e)`, `e` es un entero y el valor absoluto de `m` está en el rango [0.5, 1) (ó cero cuando `x` es cero).'
+math.huge =
+'Un valor mayor que cualquier otro valor numérico.'
+math.ldexp =
+'Retorna `m * (2 ^ e)` .'
+math.log['<5.1'] =
+'Retorna el logaritmo natural de `x` .'
+math.log['>5.2'] =
+'Retorna el logaritmo de `x` en la base provista.'
+math.log10 =
+'Retorna el logaritmo en base 10 de `x` .'
+math.max =
+'Retorna el argumento con el valor máximo, de acuerdo al operador de Lua `<`.'
+math.maxinteger['>5.3'] =
+'Un entero con el valor máximo para un entero.'
+math.min =
+'Retorna el argumento con el valor mÃnimo, de acuerdo al operador de Lua `<`.'
+math.mininteger['>5.3'] =
+'Un entero con el valor mÃnimo para un entero.'
+math.modf =
+'Retorna la parte integral de `x` y la parte fraccional de `x`.'
+math.pi =
+'El valor de *Ï€*.'
+math.pow =
+'Retorna `x ^ y` .'
+math.rad =
+'Convierte el ángulo `x` de grados a radianes.'
+math.random =
+[[
+* `math.random()`: Returns a float in the range [0,1).
+* `math.random(n)`: Returns a integer in the range [1, n].
+* `math.random(m, n)`: Returns a integer in the range [m, n].
+]]
+math.randomseed['<5.3'] =
+'Asigna `x` como el valor de semilla para el generador de números pseudo-aleatorios.'
+math.randomseed['>5.4'] =
+[[
+* `math.randomseed(x, y)`: Concatenate `x` and `y` into a 128-bit `seed` to reinitialize the pseudo-random generator.
+* `math.randomseed(x)`: Equate to `math.randomseed(x, 0)` .
+* `math.randomseed()`: Generates a seed with a weak attempt for randomness.
+]]
+math.sin =
+'Retorna el seno de `x` (se asume que está en radianes).'
+math.sinh =
+'Retorna el seno hiperbólico de `x` (se asume que está en radianes).'
+math.sqrt =
+'Retorna la raÃz cuadrada de `x`.'
+math.tan =
+'Retorna la tangente de `x` (se asume que está en radianes).'
+math.tanh =
+'Retorna la tangente hiperbólica de `x` (se asume que está en radianes).'
+math.tointeger['>5.3'] =
+'Si el valor de `x` se puede convertir a un entero, retorna ese entero.'
+math.type['>5.3'] =
+'Retorna `"integer"` si `x` es un entero, `"float"` si es un flotante ó `nil` si `x` no es un número.'
+math.ult['>5.3'] =
+'Retorna `true` si y sólo si `m` es menor que `n` cuando son comparados como enteros sin signo.'
+
+os =
+''
+os.clock =
+'Retorna una aproximación de la cantidad de segundos en tiempo de CPU usado por el programa.'
+os.date =
+'Retorna un string o una tabla que contiene la fecha y el tiempo, formateados de acuerdo al string `format` provisto.'
+os.difftime =
+'Retorna la diferencia, en segundos, desde el tiempo `t1` al tiempo `t2`.'
+os.execute =
+'Pasa el comando `command` para ser ejecutado por una llamada al intérprete *shell* del sistema operativo.'
+os.exit['<5.1'] =
+'Llama la función de C `exit` para terminar el programa anfitrión.'
+os.exit['>5.2'] =
+'Llama la función de C ISO `exit` para terminar el programa anfitrión.'
+os.getenv =
+'Retorna el valor de la variable `varname` del ambiente del proceso.'
+os.remove =
+'Borra el archivo con el nombre provisto.'
+os.rename =
+'Renombra el archivo o directorio con nombre `oldname` al nuevo `newname`.'
+os.setlocale =
+'Fija la localización linguÃstica actual del programa.'
+os.time =
+'Retorna el tiempo actual cuando se le llama sin argumentos o el tiempo que representa la fecha y hora local especificadas por la tabla provista.'
+os.tmpname =
+'Retorna un string con un nombre de archivo que puede ser usado como archivo temporal.'
+
+osdate.year =
+'cuatro dÃgitos'
+osdate.month =
+'1-12'
+osdate.day =
+'1-31'
+osdate.hour =
+'0-23'
+osdate.min =
+'0-59'
+osdate.sec =
+'0-61'
+osdate.wday =
+'dÃa de la semana, 1-7, Domingo es 1'
+osdate.yday =
+'dÃa del año, 1–366'
+osdate.isdst =
+'indicador de horario de verano, un booleano'
+
+package =
+''
+
+require['<5.3'] =
+'Carga el módulo provisto, retorna cualquier valor retornado por el módulo provisto (`true` cuando es `nil`).'
+require['>5.4'] =
+'Carga el módulo provisto, retorna cualquier valor retornado por el buscador (`true` cuando es `nil`). Aparte de ese valor, también retorna el cargador de datos retornados por el buscador como segundo resultado, lo que indica cómo `require` encontró el módulo. (Por ejemplo, si el módulo viene de un archivo, los datos del cargador son la ruta a dicho archivo.'
+
+package.config =
+'Un string describiendo algunas configuracions en tiempo de compilación para los paquetes.'
+package.cpath =
+'La ruta usada por `require` para buscar por un cargador de C.'
+package.loaded =
+'Una tabla usada por `require` para controlar qué módulos ya se han cargado.'
+package.loaders =
+'Una tabla usada por `require` para controlar cómo cargar los módulos.'
+package.loadlib =
+'Enlaza dinámicamente el programa anfitrión con la biblioteca de C `libname`.'
+package.path =
+'Ruta usada por `require` para buscar por un cargador de Lua.'
+package.preload =
+'Tabla para almacenar cargadores de módulos especÃficos.'
+package.searchers =
+'Una tabla usada por `require` para controlar cómo buscar los módulos.'
+package.searchpath =
+'Busca por el nombre `name` en la ruta `path`.'
+package.seeall =
+'Asigna una metatabla para el `module` con su campo `__index` apuntando al ambiente global, de manera que este módulo hereda los valores del ambiente global. Se usa como opción para la función `module` .'
+
+string =
+''
+string.byte =
+'Retorna los códigos numéricos internos de los caracteres `s[i], s[i+1], ..., s[j]`.'
+string.char =
+'Retorna un string con largo igual al número de argumeentos, en el que cada caracter tiene el código numérico internol igual a su argumento correspondiente.'
+string.dump =
+'Retorna un string que contiene una representación binaria de la función provista.'
+string.find =
+'Busca el primer calce del patrón `pattern` (véase §6.4.1) en el string.'
+string.format =
+'Retorna una versión formateada de su argumentos (en número variable) siguiendo la descripción dada en su primer argumento.'
+string.gmatch =
+[[
+Retorna una función iteradora que cada vez que es llamada retorna las siguientes capturas del patrón `pattern` (véase §6.4.1) sobre el string s.
+
+Por ejemplo, el bucle siguiente itera sobre todas las palabras del sstring s, imprimiendo una por lÃnea:
+```lua
+ s =
+"hello world from Lua"
+ for w in string.gmatch(s, "%a+") do
+ print(w)
+ end
+```
+]]
+string.gsub =
+'Retorna una copia de s en la cual todos (o los primeras `n`, si es provisto este argumento) ocurrencias del patrón `pattern` (vease §6.4.1) han sido reemplazadas por el string de reemplazo especificado por `repl`.'
+string.len =
+'Retorna el largo.'
+string.lower =
+'Retorna una copia de este string con todas sus letras mayúsculas cambiadas a minúsculas.'
+string.match =
+'Busca el primer calce del patrón `pattern` (véase §6.4.1) en el string.'
+string.pack =
+'Retorna el string binario que contiene los valores `v1`, `v2`, etc. empacados (serializados en forma binaria) de acuerdo al string de formato `fmt` (véase §6.4.2) .'
+string.packsize =
+'Retorna el largo del string que retorna `string.pack` con el formato `fmt` (véase §6.4.2) provisto.'
+string.rep['>5.2'] =
+'Retorna el string que es la concatenación de `n` copias del string `s` separado por el string `sep`.'
+string.rep['<5.1'] =
+'Retorna el string que es la concatenación de `n` copias del string `s` .'
+string.reverse =
+'Retorna el string que es el string `s` al revés.'
+string.sub =
+'Retorna el substring del string que empieza en `i` y continúa hasta `j`.'
+string.unpack =
+'Retorna los valores empacados en el string de acuerdo al string de formato `fmt` (véase §6.4.2) .'
+string.upper =
+'Retorna una copia de este string con todas sus letras minúsculas cambiadas a mayúsculas.'
+
+table =
+''
+table.concat =
+'Dada una lista donde todos los elementos son strings o números, retorna el string `list[i]..sep..list[i+1] ··· sep..list[j]`.'
+table.insert =
+'Inserta el elemento `value` en la posición `pos` en la lista `list`.'
+table.maxn =
+'Retorna el Ãndice numérico positivo más grande de la tabla provista o cero si la tabla no tiene un Ãndice numérico positivo.'
+table.move =
+[[
+Mueve los elementos de la tabla `a1` a la tabla `a2`.
+```lua
+a2[t],··· =
+a1[f],···,a1[e]
+return a2
+```
+]]
+table.pack =
+'Retorna una nueva tabla con todos los argumentos almacenados en las claves `1`, `2`, etc. y con un campo `"n"` con el número total de argumentos.'
+table.remove =
+'Remueve de la lista `list`, el elemento en la posición `pos`, retornando el valor del elemento removido.'
+table.sort =
+'Ordena los elementos de la lista en un orden dado, *modificando la propia lista*, desde `list[1]` hasta `list[#list]`.'
+table.unpack =
+[[
+Retorna los elementos de la lista provista. Esta función es equivalente a
+```lua
+ return list[i], list[i+1], ···, list[j]
+```
+By default, `i` is `1` and `j` is `#list`.
+]]
+table.foreach =
+'Llama a la función provista f sobre cada uno de los elementos de la tabla. Por cada elemento, f es llamada con el Ãndice y valor respectivo como argumentos. Si f retorna un valor no-nulo, el bucle se termina forzosamente y este valor es retornado como el valor final de foreach.'
+table.foreachi =
+'Ejecuta la f provista sobre los Ãndices numéricos de la tabla. Por cada Ãndice, f es llamada con el Ãndice y valor respectivo como argumentos. Los Ãndices son visitados en orden secuencial, de 1 a n, donde ne es el tamaño de la tabla. Si f retorna un valor no-nulo, el bucle se termina forzosamente y este valor es retornado como el valor final de foreachi.'
+table.getn =
+'Retorna el número de elmentos en la tabla. Esta función es equivalente a `#list`.'
+table.new =
+[[Esta función crea una tabla con el tamaño provisto, como la API en C equivalente `lua_createtable()`. Esta función es útil para tablas grandes si el tamaño final de la tabla es conocido y el agrandar automáticamente la tabla es muy caro. El parámetro `narray` especifica el número de Ãtemes de tipo de arreglo y el parámetro `nhash` especifica el número de Ãtemes de tipo diccionario.
+```lua
+ require("table.new")
+```
+]]
+table.clear =
+[[Esta función barre con todas las claves y valores de una tabla, pero preserva los tamaños de arreglo/diccionario reservados en memoria. Esta función es útil cuando una tabla que ha sido enlazada desde múltiples otras partes requiere ser vaciada y/o cuando se recicla una tabla para ser usada en el mismo contexto. Esto previene manejar enlaces de vuelta, previene tener que asignar memoria y el costo operativo del crecimiento incremental de la parte arreglo/diccionario.
+```lua
+ require("table.clear").
+```
+Nótese que esta función está hecha para situaciones muy especÃficas. En la mayorÃa de los casos es mejor reemplazar el enlace (el cual suele ser simple) con una tabla nueva y permitir que el recolector de basura haga su trabajo.
+]]
+
+utf8 =
+''
+utf8.char =
+'Recibe cero ó más enteros, convierte a cada uno a su secuencia de bytes en UTF-8 correspondiente y retorna un string con la concatenación de todas estas secuencias.'
+utf8.charpattern =
+'El patrón con el que se calza exactamente una secuencia de bytes en UTF-8, asumiendo que el sujeto es un string en UTF-8 válido.'
+utf8.codes =
+[[
+Retorna valores tal que el constructo
+```lua
+for p, c in utf8.codes(s) do
+ body
+end
+```
+itera sobre todos los caracteres en UTF-8 en el string s, con p siendo la posición en bytes y c el punto de código de cada caracter. Alza un error si se encuentra con alguna secuencia inválida de bytes.
+]]
+utf8.codepoint =
+'Retorna los puntos de códigos como enteros de todos los caracteres en `s` que empiezan entre la posición en bytes `i` y `j` (ambos inclusive).'
+utf8.len =
+'Retorna el número de caracteres en UTF-8 en el string `s` que empiezan entre las posiciones `i` y `j` (ambos inclusive).'
+utf8.offset =
+'Retorna la posición en bytes donde la codificación del caracter `n`-ésimo de `s` empieza, contado a partir de la posición `i`.'
diff --git a/nvim/mason/packages/lua-language-server/libexec/locale/es-419/script.lua b/nvim/mason/packages/lua-language-server/libexec/locale/es-419/script.lua
new file mode 100644
index 0000000..3340f04
--- /dev/null
+++ b/nvim/mason/packages/lua-language-server/libexec/locale/es-419/script.lua
@@ -0,0 +1,1318 @@
+DIAG_LINE_ONLY_SPACE =
+'LÃnea con solo espacios.'
+DIAG_LINE_POST_SPACE =
+'LÃnea con espacio al final.'
+DIAG_UNUSED_LOCAL =
+'Variable sin usar `{}`.'
+DIAG_UNDEF_GLOBAL =
+'Variable global no definida `{}`.'
+DIAG_UNDEF_FIELD =
+'Campo no definido `{}`.'
+DIAG_UNDEF_ENV_CHILD =
+'Variable no definida `{}` (`_ENV` sobrecargado).'
+DIAG_UNDEF_FENV_CHILD =
+'Variable no definida `{}` (dentro del módulo).'
+DIAG_GLOBAL_IN_NIL_ENV =
+'Variable global inválida `{}` (`_ENV` es `nil`).'
+DIAG_GLOBAL_IN_NIL_FENV =
+'Variable global (módulo de ambiente es `nil`).'
+DIAG_UNUSED_LABEL =
+'Etiqueta sin uso `{}`.'
+DIAG_UNUSED_FUNCTION =
+'Funciones sin uso.'
+DIAG_UNUSED_VARARG =
+'vararg sin uso.'
+DIAG_REDEFINED_LOCAL =
+'Variable re-definida `{}`.'
+DIAG_DUPLICATE_INDEX =
+'Ãndice duplicado `{}`.'
+DIAG_DUPLICATE_METHOD =
+'Método duplicado `{}`.'
+DIAG_PREVIOUS_CALL =
+'Se intrepretará como `{}{}`. PodrÃa ser necesario agregar una `.`.'
+DIAG_PREFIELD_CALL =
+'Se intrepretará como `{}{}`. PodrÃa ser necesario agregar una `.` ó `;`.'
+DIAG_OVER_MAX_ARGS =
+'Esta función espera un máximo de {:d} argumento(s), pero está recibiendo {:d}.'
+DIAG_MISS_ARGS =
+'Esta función requiere {:d} argumento(s), pero está recibiendo {:d}.'
+DIAG_OVER_MAX_VALUES =
+'Solo tiene {} variables, pero se están asignando {} valores.'
+DIAG_AMBIGUITY_1 =
+'Se calcula `{}` primero. Agregar corchetes podrÃa ser necesario.'
+DIAG_LOWERCASE_GLOBAL =
+'Variable global con inicial minúscula, ¿olvidó agregar `local` o está mal escrita?'
+DIAG_EMPTY_BLOCK =
+'Bloque vacÃo.'
+DIAG_DIAGNOSTICS =
+'Diagnósticos de Lua.'
+DIAG_SYNTAX_CHECK =
+'Chequeo sintáctico de Lua.'
+DIAG_NEED_VERSION =
+'Soportado en {}, actualmente usando {}.'
+DIAG_DEFINED_VERSION =
+'Definido en {}, actualmente usando {}.'
+DIAG_DEFINED_CUSTOM =
+'Definido en {}.'
+DIAG_DUPLICATE_CLASS =
+'La Clase `{}` está duplicada.'
+DIAG_UNDEFINED_CLASS =
+'La Clase `{}` no está definida.'
+DIAG_CYCLIC_EXTENDS =
+'Extensiones cÃclicas'
+DIAG_INEXISTENT_PARAM =
+'Parametro inexistente.'
+DIAG_DUPLICATE_PARAM =
+'Parametro duplicado.'
+DIAG_NEED_CLASS =
+'La clase debe ser definida primero.'
+DIAG_DUPLICATE_SET_FIELD=
+'Campo duplicado `{}`.'
+DIAG_SET_CONST =
+'Asignación de valor a una variable constante.'
+DIAG_SET_FOR_STATE =
+'Asignación de valor a una variable de bucle.'
+DIAG_CODE_AFTER_BREAK =
+'Código después de `break` nunca se ejecuta.'
+DIAG_UNBALANCED_ASSIGNMENTS =
+'El valor que se asigna es `nil` debido a que el número de valores no es suficiente. En Lua, `x, y = 1 ` es equivalente a `x, y = 1, nil` .'
+DIAG_REQUIRE_LIKE =
+'Puede tratar `{}` como `require` por configuración.'
+DIAG_COSE_NON_OBJECT =
+'No se puede cerrar un valor de este tipo. (A menos que se asigne el método meta `__close`)'
+DIAG_COUNT_DOWN_LOOP =
+'Quizo decir `{}` ?'
+DIAG_UNKNOWN =
+'No se puede inferir el tipo.'
+DIAG_DEPRECATED =
+'Obsoleto.'
+DIAG_DIFFERENT_REQUIRES =
+'Al mismo archivo se le requiere con `require` con distintos nombres.'
+DIAG_REDUNDANT_RETURN =
+'Retorno redundante.'
+DIAG_AWAIT_IN_SYNC =
+'Una función asÃncrona solo puede ser llamada en una función asÃncrona.'
+DIAG_NOT_YIELDABLE =
+'El parámetro {}-ésimo de esta función no fue marcado como suspendible para ceder el control (`yield`), en vez, una función asÃncrona fue provista. (Use `---@param nombre async fun()` para marcarlo como suspendible)'
+DIAG_DISCARD_RETURNS =
+'No se pueden descartar los valores retornados por esta función.'
+DIAG_NEED_CHECK_NIL =
+'Un chequeo de nil es necesario.'
+DIAG_CIRCLE_DOC_CLASS =
+'Clases con herencia circular.'
+DIAG_DOC_FIELD_NO_CLASS =
+'El campo debe estar definido después que la clase.'
+DIAG_DUPLICATE_DOC_ALIAS =
+'Alias `{}` fue definido múltiples veces.'
+DIAG_DUPLICATE_DOC_FIELD =
+'Campos definidos múltiples veces `{}`.'
+DIAG_DUPLICATE_DOC_PARAM =
+'Parámetros duplicados `{}`.'
+DIAG_UNDEFINED_DOC_CLASS =
+'Clase no definida `{}`.'
+DIAG_UNDEFINED_DOC_NAME =
+'Tipo o alias no definido `{}`.'
+DIAG_UNDEFINED_DOC_PARAM =
+'Parámetro no definido `{}`.'
+DIAG_MISSING_GLOBAL_DOC_COMMENT =
+'Falta un comentario para la función global `{}`.'
+DIAG_MISSING_GLOBAL_DOC_PARAM =
+'Falta una anotación @param para el parámetro `{}` en la función global `{}`.'
+DIAG_MISSING_GLOBAL_DOC_RETURN =
+'Falta una anotación @return para el Ãndice `{}` en la función global `{}`.'
+DIAG_MISSING_LOCAL_EXPORT_DOC_COMMENT =
+'Falta un un comentario para la función local exportada `{}`.'
+DIAG_MISSING_LOCAL_EXPORT_DOC_PARAM =
+'Falta una anotación @param para el parámetro `{}` en la función local `{}`.'
+DIAG_MISSING_LOCAL_EXPORT_DOC_RETURN =
+'Falta una anotación @return para el Ãndice `{}` en la función local `{}`.'
+DIAG_INCOMPLETE_SIGNATURE_DOC_PARAM =
+'Firma incompleta. Falta una anotación @param para el parámetro `{}`.'
+DIAG_INCOMPLETE_SIGNATURE_DOC_RETURN =
+'Firma incompleta. Falta una anotación @return para el Ãndice `{}`.'
+DIAG_UNKNOWN_DIAG_CODE =
+'Código de diagnóstico desconocido `{}`.'
+DIAG_CAST_LOCAL_TYPE =
+'Esta variable fue definida como tipo `{def}`. No se puede convertir su tipo a `{ref}`.'
+DIAG_CAST_FIELD_TYPE =
+'Este campo fue definido como tipo `{def}`. No se puede convertir su tipo a `{ref}`.'
+DIAG_ASSIGN_TYPE_MISMATCH =
+'No se puede asignar `{ref}` a `{def}`'
+DIAG_PARAM_TYPE_MISMATCH =
+'Cannot assign `{ref}` to parameter `{def}`.'
+DIAG_UNKNOWN_CAST_VARIABLE =
+'Variable de conversión de tipo desconocida `{}`.'
+DIAG_CAST_TYPE_MISMATCH =
+'No se puede convertir `{ref}` a `{def}`。'
+DIAG_MISSING_RETURN_VALUE =
+'Las anotaciones especifican que se requieren al menos {min} valor(es) de retorno, en cambio, se encontró que se retornaron {rmax}.'
+DIAG_MISSING_RETURN_VALUE_RANGE =
+'Las anotaciones especifican que se requieren al menos {min} valor(es), en cambio, se encontró que se retornaron entre {rmin} y {rmax}.'
+DIAG_REDUNDANT_RETURN_VALUE =
+'Las anotaciones especifican que se retornan a lo más {max} valor(es), en cambio, se encontró que se retornaron {rmax}.'
+DIAG_REDUNDANT_RETURN_VALUE_RANGE =
+'Las anotaciones especifican que se retornan a lo más {max} valor(es), en cambio, se encontró que se retornaron entre {rmin} y {rmax}.'
+DIAG_MISSING_RETURN =
+'Las anotaciones especifican que se requiere un valor de retorno aquÃ.'
+DIAG_RETURN_TYPE_MISMATCH =
+'Las anotaciones especifican que el valor de retorno #{index} tiene `{def}` como tipo, en cambio, se está retornando un valor de tipo `{ref}`.'
+DIAG_UNKNOWN_OPERATOR =
+'Operación desconocida `{}`.'
+DIAG_UNREACHABLE_CODE =
+'Este código nunca es ejecutado.'
+DIAG_INVISIBLE_PRIVATE =
+'El campo `{field}` es privado, solo puede ser accedido desde la clase `{class}`.'
+DIAG_INVISIBLE_PROTECTED =
+'El campo `{field}` es protegido, solo puede ser accedido desde la clase `{class}` y sus sub-clases.'
+DIAG_INVISIBLE_PACKAGE =
+'Al campo `{field}` solo se le puede acceder dentro del mismo archivo `{uri}`.'
+DIAG_GLOBAL_ELEMENT =
+'El elemento es global.'
+DIAG_MISSING_FIELDS =
+'Faltan los campos requeridos en el tipo `{1}`: {2}'
+DIAG_INJECT_FIELD =
+'Los campos no pueden ser inyectados a la referencia de `{class}` para `{field}`. {fix}'
+DIAG_INJECT_FIELD_FIX_CLASS =
+'Para que sea asÃ, use `---@class` para `{node}`.'
+DIAG_INJECT_FIELD_FIX_TABLE =
+'Para permitir la inyección, agregue `{fix}` a la definición.'
+
+MWS_NOT_SUPPORT =
+'{} no soporta múltiples espacios de trabajo por ahora, podrÃa ser necesario que me reinicie para soportar el nuevo espacio de trabajo ...'
+MWS_RESTART =
+'Reiniciar'
+MWS_NOT_COMPLETE =
+'El espacio de trabajo aún no está completo. Puede intentarlo más tarde...'
+MWS_COMPLETE =
+'El espacio de trabajo está completado. Puede intentarlo de nuevo...'
+MWS_MAX_PRELOAD =
+'El número de archivos pre-cargados ha llegado al lÃmite ({}), es necesario abrir manualmente los archivos que necesiten ser cargados.'
+MWS_UCONFIG_FAILED =
+'El guardado de la configuración de usuario falló.'
+MWS_UCONFIG_UPDATED =
+'La configuración de usuario fue actualizada.'
+MWS_WCONFIG_UPDATED =
+'El espacio de trabajo fue actualizado.'
+
+WORKSPACE_SKIP_LARGE_FILE =
+'Archivo es muy grande: {} fue omitido. El lÃmite de tamaño actual es: {} KB, y el tamaño de archivo es: {} KB.'
+WORKSPACE_LOADING =
+'Cargando el espacio de trabajo.'
+WORKSPACE_DIAGNOSTIC =
+'Diagnosticando el espacio de trabajo'
+WORKSPACE_SKIP_HUGE_FILE =
+'Por temas de rendimiento se detuvo la lectura de este archivo: {}'
+WORKSPACE_NOT_ALLOWED =
+'Su espacio de trabajo está asignado a `{}`. El servidor de lenguage de Lua se rehusó a cargar este directorio. Por favor, revise se configuración. [más info acá (en inglés)](https://luals.github.io/wiki/faq#why-is-the-server-scanning-the-wrong-folder)'
+WORKSPACE_SCAN_TOO_MUCH =
+'Se revisaron más de {} archivos. El directorio actual de revisión es `{}`. Por favor, revise [estas preguntas y respuestas frecuentes (en inglés)](https://luals.github.io/wiki/faq/#how-can-i-improve-startup-speeds) para ver cómo se podrÃan incluir menos archivos. También es posible que su [configuración esté incorrecta (en inglés)](https://luals.github.io/wiki/faq#why-is-the-server-scanning-the-wrong-folder).'
+
+PARSER_CRASH =
+'¡El lector se cayó! Las últimas palabras fueron:{}'
+PARSER_UNKNOWN =
+'Error desconocido de sintaxis...'
+PARSER_MISS_NAME =
+'Se esperaba .'
+PARSER_UNKNOWN_SYMBOL =
+'SÃmbolo inesperado `{symbol}`.'
+PARSER_MISS_SYMBOL =
+'SÃmbolo faltante `{symbol}`.'
+PARSER_MISS_ESC_X =
+'DeberÃan ser 2 dÃgitos hexadecimales.'
+PARSER_UTF8_SMALL =
+'Al menos 1 dÃgito hexadecimal.'
+PARSER_UTF8_MAX =
+'DeberÃan ser entre {min} y {max}.'
+PARSER_ERR_ESC =
+'Secuencia inválida de escape.'
+PARSER_MUST_X16 =
+'DeberÃan ser dÃgitos hexadecimales.'
+PARSER_MISS_EXPONENT =
+'Faltan los dÃgitos para el exponente.'
+PARSER_MISS_EXP =
+'Se esperaba .'
+PARSER_MISS_FIELD =
+'Se esperaba .'
+PARSER_MISS_METHOD =
+'Se esperaba .'
+PARSER_ARGS_AFTER_DOTS =
+'`...` should be the last arg.'
+PARSER_KEYWORD =
+' cannot be used as name.'
+PARSER_EXP_IN_ACTION =
+'Unexpected .'
+PARSER_BREAK_OUTSIDE =
+' not inside a loop.'
+PARSER_MALFORMED_NUMBER =
+'Malformed number.'
+PARSER_ACTION_AFTER_RETURN =
+'Se esperaba después de `return`.'
+PARSER_ACTION_AFTER_BREAK =
+'Se esperaba después de `break`.'
+PARSER_NO_VISIBLE_LABEL =
+'No se ve la etiqueta `{label}` .'
+PARSER_REDEFINE_LABEL =
+'La etiqueta `{label}` ya fue definida.'
+PARSER_UNSUPPORT_SYMBOL =
+'{version} no soporta esta gramática.'
+PARSER_UNEXPECT_DOTS =
+'No se puede usar `...` fuera de una función de vararg.'
+PARSER_UNEXPECT_SYMBOL =
+'SÃmbolo inesperado `{symbol}`.'
+PARSER_UNKNOWN_TAG =
+'Atributo desconocido.'
+PARSER_MULTI_TAG =
+'Los multi-atributos no están soportados.'
+PARSER_UNEXPECT_LFUNC_NAME =
+'La función local solo puede ser usar identificadores como nombre.'
+PARSER_UNEXPECT_EFUNC_NAME =
+'La función como expresión no puede ser nombrada.'
+PARSER_ERR_LCOMMENT_END =
+'Las anotaciones multi-lÃnea deben ser cerradas por `{symbol}` .'
+PARSER_ERR_C_LONG_COMMENT =
+'En Lua debe usarse `--[[ ]]` para anotaciones multi-lÃnea.'
+PARSER_ERR_LSTRING_END =
+'Los strings largos se deben cerrar con `{symbol}` .'
+PARSER_ERR_ASSIGN_AS_EQ =
+'Se debe usar `=` para la asignación.'
+PARSER_ERR_EQ_AS_ASSIGN =
+'Se debe usar `==` para la igualdad.'
+PARSER_ERR_UEQ =
+'Se debe usar `~=` para la no igualdad.'
+PARSER_ERR_THEN_AS_DO =
+'DeberÃa usar `then` .'
+PARSER_ERR_DO_AS_THEN =
+'DeberÃa usar `do` .'
+PARSER_MISS_END =
+'Falta el `end` correspondiente.'
+PARSER_ERR_COMMENT_PREFIX =
+'En Lua se debe usar `--` para las anotaciones.'
+PARSER_MISS_SEP_IN_TABLE =
+'Falta el sÃmbolo `,` ó `;` .'
+PARSER_SET_CONST =
+'Asignación de valor a una variable constante.'
+PARSER_UNICODE_NAME =
+'Contiene caracteres Unicode.'
+PARSER_ERR_NONSTANDARD_SYMBOL =
+'En Lua se debe usar `{symbol}` .'
+PARSER_MISS_SPACE_BETWEEN =
+'Se deben dejar espacios entre sÃmbolos.'
+PARSER_INDEX_IN_FUNC_NAME =
+'La forma `[name]` no puede ser usada en el nombre de una función nombrada.'
+PARSER_UNKNOWN_ATTRIBUTE =
+'El atributo local debe ser `const` ó `close`'
+PARSER_AMBIGUOUS_SYNTAX =
+'En Lua 5.1, los corchetes izquierdos llamados por la función deben estar en la misma lÃnea que la función.'
+PARSER_NEED_PAREN =
+'Se necesita agregar un par de paréntesis.'
+PARSER_NESTING_LONG_MARK =
+'La anidación de `[[...]]` no está permitida en Lua 5.1 .'
+PARSER_LOCAL_LIMIT =
+'Solo 200 variables locales activas y valores anteriores pueden existir al mismo tiempo.'
+PARSER_LUADOC_MISS_CLASS_NAME =
+'Se esperaba .'
+PARSER_LUADOC_MISS_EXTENDS_SYMBOL =
+'Se esperaba `:`.'
+PARSER_LUADOC_MISS_CLASS_EXTENDS_NAME =
+'Se esperaba .'
+PARSER_LUADOC_MISS_SYMBOL =
+'Se esperaba `{symbol}`.'
+PARSER_LUADOC_MISS_ARG_NAME =
+'Se esperaba .'
+PARSER_LUADOC_MISS_TYPE_NAME =
+'Se esperaba .'
+PARSER_LUADOC_MISS_ALIAS_NAME =
+'Se esperaba .'
+PARSER_LUADOC_MISS_ALIAS_EXTENDS =
+'Se esperaba .'
+PARSER_LUADOC_MISS_PARAM_NAME =
+'Se esperaba .'
+PARSER_LUADOC_MISS_PARAM_EXTENDS =
+'Se esperaba .'
+PARSER_LUADOC_MISS_FIELD_NAME =
+'Se esperaba .'
+PARSER_LUADOC_MISS_FIELD_EXTENDS =
+'Se esperaba .'
+PARSER_LUADOC_MISS_GENERIC_NAME =
+'Se esperaba .'
+PARSER_LUADOC_MISS_GENERIC_EXTENDS_NAME=
+'Se esperaba .'
+PARSER_LUADOC_MISS_VARARG_TYPE =
+'Se esperaba .'
+PARSER_LUADOC_MISS_FUN_AFTER_OVERLOAD =
+'Se esperaba `fun`.'
+PARSER_LUADOC_MISS_CATE_NAME =
+'Se esperaba .'
+PARSER_LUADOC_MISS_DIAG_MODE =
+'Se esperaba .'
+PARSER_LUADOC_ERROR_DIAG_MODE =
+' incorrect.'
+PARSER_LUADOC_MISS_LOCAL_NAME =
+'Se esperaba .'
+
+SYMBOL_ANONYMOUS =
+''
+
+HOVER_VIEW_DOCUMENTS =
+'Ver documentos'
+HOVER_DOCUMENT_LUA51 =
+'http://www.lua.org/manual/5.1/manual.html#{}'
+HOVER_DOCUMENT_LUA52 =
+'http://www.lua.org/manual/5.2/manual.html#{}'
+HOVER_DOCUMENT_LUA53 =
+'http://www.lua.org/manual/5.3/manual.html#{}'
+HOVER_DOCUMENT_LUA54 =
+'http://www.lua.org/manual/5.4/manual.html#{}'
+HOVER_DOCUMENT_LUAJIT =
+'http://www.lua.org/manual/5.1/manual.html#{}'
+HOVER_NATIVE_DOCUMENT_LUA51 =
+'command:extension.lua.doc?["en-us/51/manual.html/{}"]'
+HOVER_NATIVE_DOCUMENT_LUA52 =
+'command:extension.lua.doc?["en-us/52/manual.html/{}"]'
+HOVER_NATIVE_DOCUMENT_LUA53 =
+'command:extension.lua.doc?["en-us/53/manual.html/{}"]'
+HOVER_NATIVE_DOCUMENT_LUA54 =
+'command:extension.lua.doc?["en-us/54/manual.html/{}"]'
+HOVER_NATIVE_DOCUMENT_LUAJIT =
+'command:extension.lua.doc?["en-us/51/manual.html/{}"]'
+HOVER_MULTI_PROTOTYPE =
+'({} prototipos)'
+HOVER_STRING_BYTES =
+'{} bytes'
+HOVER_STRING_CHARACTERS =
+'{} bytes, {} characters'
+HOVER_MULTI_DEF_PROTO =
+'({} definiciones, {} prototipos)'
+HOVER_MULTI_PROTO_NOT_FUNC=
+'({} definiciones no-funcionales)'
+HOVER_USE_LUA_PATH =
+'(Ruta de búsqueda: `{}`)'
+HOVER_EXTENDS =
+'Se expande a {}'
+HOVER_TABLE_TIME_UP =
+'Por temas de rendimiento se deshabilito la inferencia parcial de tipo.'
+HOVER_WS_LOADING =
+'Cargando espacio de trabajo: {} / {}'
+HOVER_AWAIT_TOOLTIP =
+'Llamando a la función asÃncrona, la hebra actual podrÃa ser suspendida.'
+
+ACTION_DISABLE_DIAG =
+'Deshabilita los diagnósticos en el espacio de trabajo ({}).'
+ACTION_MARK_GLOBAL =
+'Marca `{}` como global definida.'
+ACTION_REMOVE_SPACE =
+'Quita todos los espacios al final de lÃnea.'
+ACTION_ADD_SEMICOLON =
+'Agrega `;` .'
+ACTION_ADD_BRACKETS =
+'Agrega corchetes.'
+ACTION_RUNTIME_VERSION =
+'Cambia la versión a ejecutar a {} .'
+ACTION_OPEN_LIBRARY =
+'Carga globales de {} .'
+ACTION_ADD_DO_END =
+'Agrega `do ... end` .'
+ACTION_FIX_LCOMMENT_END=
+'Modifica al sÃmbolo de cierre correcto para la anotación multi-lÃnea.'
+ACTION_ADD_LCOMMENT_END=
+'Cierra las anotaciones multi-lÃnea.'
+ACTION_FIX_C_LONG_COMMENT=
+'Modifica al formato de anotaciones multi-lÃnea de Lua.'
+ACTION_FIX_LSTRING_END =
+'Modifica al sÃmbolo correcto de cierre de string largo.'
+ACTION_ADD_LSTRING_END =
+'Cierra string largo.'
+ACTION_FIX_ASSIGN_AS_EQ=
+'Modifica a `=` .'
+ACTION_FIX_EQ_AS_ASSIGN=
+'Modifica a `==` .'
+ACTION_FIX_UEQ =
+'Modifica a `~=` .'
+ACTION_FIX_THEN_AS_DO =
+'Modifica a `then` .'
+ACTION_FIX_DO_AS_THEN =
+'Modifica a `do` .'
+ACTION_ADD_END =
+'Agrega `end` (infiere la marca en base ala indentación).'
+ACTION_FIX_COMMENT_PREFIX=
+'Modifica a `--` .'
+ACTION_FIX_NONSTANDARD_SYMBOL=
+'Modifica a `{symbol}` .'
+ACTION_RUNTIME_UNICODE_NAME=
+'Permite el uso de caracteres Unicode.'
+ACTION_SWAP_PARAMS =
+'Cambia al parámetro {index} de `{node}`'
+ACTION_FIX_INSERT_SPACE=
+'Inserte espacio.'
+ACTION_JSON_TO_LUA =
+'Convierte JSON a Lua'
+ACTION_DISABLE_DIAG_LINE=
+'Deshabilita diagnósticos en esta lÃnea ({}).'
+ACTION_DISABLE_DIAG_FILE=
+'Deshabilita diagnósticos en este archivo ({}).'
+ACTION_MARK_ASYNC =
+'Marca la función actual como asÃncrona.'
+ACTION_ADD_DICT =
+'Agrega \'{}\' al diccionario de espacio de trabajo'
+ACTION_FIX_ADD_PAREN =
+'Agrega paréntesis.'
+ACTION_AUTOREQUIRE =
+"Importa '{}' como {}"
+
+COMMAND_DISABLE_DIAG =
+'Deshabilita los diagnósticos'
+COMMAND_MARK_GLOBAL =
+'Marca la variable como global definida'
+COMMAND_REMOVE_SPACE =
+'Quita todos los espacios al final de lÃnea.'
+COMMAND_ADD_BRACKETS =
+'Agrega corchetes'
+COMMAND_RUNTIME_VERSION =
+'Cambia la versión a ejecutar'
+COMMAND_OPEN_LIBRARY =
+'Carga variables globales de una biblioteca externa'
+COMMAND_UNICODE_NAME =
+'Permite el uso de caracteres Unicode.'
+COMMAND_JSON_TO_LUA =
+'Convierte JSON a Lua'
+COMMAND_JSON_TO_LUA_FAILED=
+'Falló la conversión JSON a Lua: {}'
+COMMAND_ADD_DICT =
+'Agrega la palabra al diccionario'
+COMMAND_REFERENCE_COUNT =
+'{} referencias'
+
+COMPLETION_IMPORT_FROM =
+'Importa de {}'
+COMPLETION_DISABLE_AUTO_REQUIRE =
+'Deshabilita auto require'
+COMPLETION_ASK_AUTO_REQUIRE =
+'¿Desea agregar el código al inicio del archivo para hacer require a este archivo?'
+
+DEBUG_MEMORY_LEAK =
+"{} Lamento la fuga de memoria. Pronto se reiniciará el servicio de lenguage."
+DEBUG_RESTART_NOW =
+'Reinicia ahora'
+
+WINDOW_COMPILING =
+'Compilando'
+WINDOW_DIAGNOSING =
+'Diagnosticando'
+WINDOW_INITIALIZING =
+'Inicializando...'
+WINDOW_PROCESSING_HOVER =
+'Procesando ratón rondando...'
+WINDOW_PROCESSING_DEFINITION =
+'Procesando definición...'
+WINDOW_PROCESSING_REFERENCE =
+'Procesando referencia...'
+WINDOW_PROCESSING_RENAME =
+'Procesando renombre...'
+WINDOW_PROCESSING_COMPLETION =
+'Procesando completado...'
+WINDOW_PROCESSING_SIGNATURE =
+'Procesando ayuda de firma...'
+WINDOW_PROCESSING_SYMBOL =
+'Procesando sÃmbolos de archivo...'
+WINDOW_PROCESSING_WS_SYMBOL =
+'Procesando sÃmbolos de espacio de trabajo...'
+WINDOW_PROCESSING_SEMANTIC_FULL =
+'Procesando tóquenes semánticos completos...'
+WINDOW_PROCESSING_SEMANTIC_RANGE=
+'Procesando tóquenes semánticos incrementales...'
+WINDOW_PROCESSING_HINT =
+'Procesando pista en lÃnea...'
+WINDOW_PROCESSING_BUILD_META =
+'Procesando meta de construcción...'
+WINDOW_INCREASE_UPPER_LIMIT =
+'Incrementa lÃmite superior'
+WINDOW_CLOSE =
+'Cierra'
+WINDOW_SETTING_WS_DIAGNOSTIC =
+'Puede desahibilitar los diagnósticos del espacio de trabajo o dejarlos para después en la configuración'
+WINDOW_DONT_SHOW_AGAIN =
+'No lo muestres de nuevo'
+WINDOW_DELAY_WS_DIAGNOSTIC =
+'Diagnósticos de tiempo ocioso (retardo de {} segundos)'
+WINDOW_DISABLE_DIAGNOSTIC =
+'Deshabilita los diagnósticos del espacio de trabajo'
+WINDOW_LUA_STATUS_WORKSPACE =
+'Espacio de trabajo : {}'
+WINDOW_LUA_STATUS_CACHED_FILES =
+'Archivos en caché: {ast}/{max}'
+WINDOW_LUA_STATUS_MEMORY_COUNT =
+'Memoria en uso: {mem:.f}M'
+WINDOW_LUA_STATUS_TIP =
+[[
+
+Este Ãcono es un gato,
+¡no es un perro o un zorro!
+ ↓↓↓
+]]
+WINDOW_LUA_STATUS_DIAGNOSIS_TITLE=
+'Realiza los diagnósticos del espacio de trabajo'
+WINDOW_LUA_STATUS_DIAGNOSIS_MSG =
+'¿Quiere realizar los diagnósticos del espacio de trabajo?'
+WINDOW_APPLY_SETTING =
+'Aplica la configuración'
+WINDOW_CHECK_SEMANTIC =
+'Puede ser que necesite modificar `editor.semanticHighlighting.enabled` a `true` si está usando el tema de colores del mercado para hacer que los tóquenes semánticos tengan efecto, '
+WINDOW_TELEMETRY_HINT =
+'Por favor, permita el envÃo de datos de uso anónimos y de reportes de errores para ayudarnos a mejorar esta extensión. Lea nuestra polÃtica de privacidad [aquà (en inglés)](https://luals.github.io/privacy#language-server) .'
+WINDOW_TELEMETRY_ENABLE =
+'Permitida'
+WINDOW_TELEMETRY_DISABLE =
+'Prohibida'
+WINDOW_CLIENT_NOT_SUPPORT_CONFIG=
+'Su cliente no soporta la modificación de la configuación desde el servidor, por favor, modifique manualmente las siguientes configuraciones:'
+WINDOW_LCONFIG_NOT_SUPPORT_CONFIG=
+'La modificación automática de la configuración local no está soportada actualmente, por favor, modifique manualmente las siguientes configuraciones:'
+WINDOW_MANUAL_CONFIG_ADD =
+'`{key}`: agregue el elemento `{value:q}` ;'
+WINDOW_MANUAL_CONFIG_SET =
+'`{key}`: asignado a `{value:q}` ;'
+WINDOW_MANUAL_CONFIG_PROP =
+'`{key}`: la propiedad `{prop}` asignada a `{value:q}`;'
+WINDOW_APPLY_WHIT_SETTING =
+'Aplica y modifica la configuración'
+WINDOW_APPLY_WHITOUT_SETTING =
+'Aplica pero sin modificar la configuración'
+WINDOW_ASK_APPLY_LIBRARY =
+'¿Necesita configurar su ambiente de trabajo como `{}`?'
+WINDOW_SEARCHING_IN_FILES =
+'Buscando en los archivos...'
+WINDOW_CONFIG_LUA_DEPRECATED =
+'`config.lua` está obsoleto, por favor, use `config.json`.'
+WINDOW_CONVERT_CONFIG_LUA =
+'Convierte a `config.json`'
+WINDOW_MODIFY_REQUIRE_PATH =
+'¿Desea modificar la ruta para requerir módulos?'
+WINDOW_MODIFY_REQUIRE_OK =
+'Modifica'
+
+CONFIG_LOAD_FAILED =
+'No se pudo leer el archivo de configuración: {}'
+CONFIG_LOAD_ERROR =
+'Error al cargar el archivo de configuración: {}'
+CONFIG_TYPE_ERROR =
+'El el archivo de configuración debe estar o en formato lua o en formato json: {}'
+CONFIG_MODIFY_FAIL_SYNTAX_ERROR =
+'Falló la modificación de la configuración, hay errores de sintaxis en el archivo de configuración: {}'
+CONFIG_MODIFY_FAIL_NO_WORKSPACE =
+[[
+Falló la modificación de la configuración:
+* El modo actual es "solo un archivo", el servidor no puede crear `.luarc.json` sin un espacio de trabajo.
+* El cliente de lenguage no soporta la modificación de la configuración desde el servidor.
+
+Por favor, modifique manualmente las siguientes configuraciones:
+{}
+]]
+CONFIG_MODIFY_FAIL =
+[[
+Falló la modificación de la configuración:
+
+Por favor, modifique manualmente las siguientes configuraciones:
+{}
+]]
+
+PLUGIN_RUNTIME_ERROR =
+[[
+Hubo un error en el plugin, por favor, repórtelo con la persona autora del plugin.
+Por favor, revise los detalles en la salida o registros.
+Ruta del plugin: {}
+]]
+PLUGIN_TRUST_LOAD =
+[[
+La configuración actual intenta cargar el plugin ubicado aquÃ:{}
+
+Tenga precaución con algún plugin malicioso que pueda dañar su computador
+]]
+PLUGIN_TRUST_YES =
+[[
+ConfÃa y carga este plugin
+]]
+PLUGIN_TRUST_NO =
+[[
+No cargues este plugin
+]]
+
+CLI_CHECK_ERROR_TYPE=
+'El argumento de CHECK debe ser un string, pero se tiene {}'
+CLI_CHECK_ERROR_URI=
+'El argumento de CHECK debe ser una uri válida, pero se tiene {}'
+CLI_CHECK_ERROR_LEVEL=
+'El nivel de chequeo debe ser uno de: {}'
+CLI_CHECK_INITING=
+'Inicializando...'
+CLI_CHECK_SUCCESS=
+'Se completó el diagnóstico, no se encontraron problemas'
+CLI_CHECK_PROGRESS=
+'Se encontraron {} problema(s) en {} archivo(s)'
+CLI_CHECK_RESULTS=
+'Se completó el diagnóstico, se encontraron {} problema(s), vea {}'
+CLI_CHECK_MULTIPLE_WORKERS=
+'Iniciando {} tarea(s) de trabajo, se ha deshabitado la salida de progreso. Esto podrÃa tomar unos minutos.'
+CLI_DOC_INITING =
+'Cargando documentos ...'
+CLI_DOC_DONE =
+[[
+Documentación exportada:
+]]
+CLI_DOC_WORKING =
+'Construyendo la documentación...'
+
+TYPE_ERROR_ENUM_GLOBAL_DISMATCH=
+'El tipo `{child}` no calza con el tipo de enumeración `{parent}`'
+TYPE_ERROR_ENUM_GENERIC_UNSUPPORTED=
+'No se puede usar el genérico `{child}` en enumeraciones'
+TYPE_ERROR_ENUM_LITERAL_DISMATCH=
+'El literal `{child}` no calza con el valor de enumeración `{parent}`'
+TYPE_ERROR_ENUM_OBJECT_DISMATCH=
+'El literal `{child}` no calza con el valor de enumeración `{parent}`. Deben ser el mismo objeto'
+TYPE_ERROR_ENUM_NO_OBJECT=
+'No se reconoce el valor de enumeración entregado `{child}`'
+TYPE_ERROR_INTEGER_DISMATCH=
+'El literal `{child}` no calza con el entero `{parent}`'
+TYPE_ERROR_STRING_DISMATCH=
+'El literal `{child}` no calza con el string `{parent}`'
+TYPE_ERROR_BOOLEAN_DISMATCH=
+'El literal `{child}` no calza con el booleano `{parent}`'
+TYPE_ERROR_TABLE_NO_FIELD=
+'El campo `{key}` no existe en la tabla'
+TYPE_ERROR_TABLE_FIELD_DISMATCH=
+'El tipo del campo `{key}` es `{child}`, que no calza con `{parent}`'
+TYPE_ERROR_CHILD_ALL_DISMATCH=
+'Todos los sub-tipos en `{child}` no calzan con `{parent}`'
+TYPE_ERROR_PARENT_ALL_DISMATCH=
+'`{child}` no calza con ningún sub-tipo en `{parent}`'
+TYPE_ERROR_UNION_DISMATCH=
+'`{child}` no calza con `{parent}`'
+TYPE_ERROR_OPTIONAL_DISMATCH=
+'El tipo opcional no calza con `{parent}`'
+TYPE_ERROR_NUMBER_LITERAL_TO_INTEGER=
+'El número `{child}` no puede ser convertido a un entero'
+TYPE_ERROR_NUMBER_TYPE_TO_INTEGER=
+"No se puede convertir un tipo 'número' a un tipo 'entero'"
+TYPE_ERROR_DISMATCH=
+'El tipo `{child}` no calza con `{parent}`'
+
+LUADOC_DESC_CLASS=
+[=[
+Define una estructura de clase o tabla
+## Sintaxis
+`---@class [: [, ]...]`
+## Uso
+```
+---@class Gerente: Persona, Humano
+Gerente = {}
+```
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations#class)
+]=]
+LUADOC_DESC_TYPE=
+[=[
+Especifica el tipo de una cierta variable
+
+Tipos predefinidos: `nil`, `any`, `boolean`, `string`, `number`, `integer`,
+`function`, `table`, `thread`, `userdata`, `lightuserdata`
+
+(Otros tipos pueden ser provistos usando `@alias`)
+
+## Sintaxis
+`---@type [| [tipo]...`
+
+## Uso
+### En general
+```
+---@type nil|table|miClase
+local Ejemplo = nil
+```
+
+### Arreglos
+```
+---@type number[]
+local numsTelefonicos = {}
+```
+
+### Enumeraciones
+```
+---@type "red"|"green"|"blue"
+local color = ""
+```
+
+### Tablas
+```
+---@type table
+local config = {
+ desahibilitaRegistra = true,
+ previeneElApagado = false,
+}
+
+---@type { [string]: true }
+local x --x[""] es `true`
+```
+
+### Funciones
+```
+---@type fun(mode?: "r"|"w"): string
+local miFun
+```
+---
+[Revisar la Wiki](https://luals.github.io/wiki/annotations#type)
+]=]
+LUADOC_DESC_ALIAS=
+[=[
+Se pueden crear tipos propios que pueden ser usados con `@param`, `@type`, etc.
+
+## Sintaxis
+`---@alias [descripción]`\
+or
+```
+---@alias
+---| 'valor' [# comentario]
+---| 'valor2' [# comentario]
+...
+```
+
+## Uso
+### Expansión a otro tipo
+```
+---@alias rutaArchivo string ruta a un archivo
+
+---@param ruta rutaArchivo Ruta al archivo para buscar
+function encuentra(ruta, patron) end
+```
+
+### Enumeraciones
+```
+---@alias estilo-de-fuente
+---| '"subrayado"' # Subraya el texto
+---| '"negrita"' # Pon el texto en negrita
+---| '"italica"' # Italiza el texto
+
+---@param estilo estilo-de-fuente Estilo a aplicar
+function asignaEstiloDeFuente(estilo) end
+```
+
+### Enumeraciones literales
+```
+local enumeraciones = {
+ LECTURA = 0,
+ ESCRITURA = 1,
+ CERRADO = 2
+}
+
+---@alias EstadosDeArchivo
+---| `enumeraciones.LECTURA`
+---| `enumeraciones.ESCRITURA`
+---| `enumeraciones.CERRADO`
+```
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations#alias)
+]=]
+LUADOC_DESC_PARAM=
+[=[
+Declaración de un parámetro de una función
+
+## Sintaxis
+`@param [?] [comentario]`
+
+## Uso
+### En general
+```
+---@param url string La url a requerir
+---@param cabeceras? table Cabeceras HTTP a enviar
+---@param expiracion? number Tiempo de expiración en segundos
+function get(url, cabeceras, expiracion) end
+```
+
+### Argumentos variables
+```
+---@param base string La base de la concatenación
+---@param ... string Los valores a concatenar
+function concat(base, ...) end
+```
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations#param)
+]=]
+LUADOC_DESC_RETURN=
+[=[
+Declaración de un valor de retorno
+
+## Sintaxis
+`@return [nombre] [descripción]`\
+or\
+`@return [# descripción]`
+
+## Uso
+### En general
+```
+---@return number
+---@return number # Componente verde
+---@return number b Componente azul
+function hexToRGB(hex) end
+```
+
+### Solo tipos y nombres
+```
+---@return number x, number y
+function getCoords() end
+```
+
+### Solo tipos
+```
+---@return string, string
+function obtenPrimeroYUltimo() end
+```
+
+### Retorno de valores variables
+```
+---@return string ... Las etiquetas del Ãtem
+function obtenEtiquetas(item) end
+```
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations#return)
+]=]
+LUADOC_DESC_FIELD=
+[=[
+Declaración de un campo en una clase o tabla. Esto permite proveer una
+documentación con más detalles para una tabla. Desde `v3.6.0`, se puede
+marcar un campo como privado (`private`), protegido (`protected`), público
+(`public`) o en-paquete (`package`).
+
+## Sintaxis
+`---@field [alcance] [descripción]`
+
+## Uso
+```
+---@class HTTP_RESPONSE
+---@field status HTTP_STATUS
+---@field headers table Las cabeceras de la respuesta
+
+---@class HTTP_STATUS
+---@field code number The status code of the response
+---@field message string A message reporting the status
+
+---@return HTTP_RESPONSE response The response from the server
+function get(url) end
+
+--This response variable has all of the fields defined above
+response = get("localhost")
+
+--Extension provided intellisense for the below assignment
+statusCode = response.status.code
+```
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations#field)
+]=]
+LUADOC_DESC_GENERIC=
+[=[
+Simulación de genéricos. Los genéricos permiten que los tipos puedan ser
+reusados dado que ayudan a definir una "figura genérica" que puede ser
+usada con otros tipos.
+
+## Sintaxis
+`---@generic [:tipo_padre] [, [:tipo_padre]]`
+
+## Uso
+### En general
+```
+---@generic T
+---@param valor T El valor a retornar
+---@return T valor Exactamente el mismo valor
+function eco(valor)
+ return valor
+end
+
+-- El tipo es string
+s = eco("e")
+
+-- El tipo es número (`number`)
+n = eco(10)
+
+-- El tipo es booleano (`boolean`)
+b = eco(true)
+
+-- Tenemos toda esta información con solo
+-- usar @generic sin tener que especificar
+-- manualmente cada tipo permitido
+```
+
+### Captura del nombre de un tipo genérico
+### Capture name of generic type
+```
+---@class Foo
+local Foo = {}
+function Foo:Bar() end
+
+---@generic T
+---@param nombre `T` # aquà se captura el tipo de nombre genérico
+---@return T # se retorna el tipo genérico
+function Generico(nombre) end
+
+local v = Generico("Foo") -- v es un objeto de Foo
+```
+
+### Uso de genéricos en Lua
+```
+---@class table: { [K]: V }
+
+-- Esto es lo que nos permite crear una
+-- tabla e intellisense hace seguimiento a
+-- cualquier tipo al que le proveamos para la
+-- clave (k) ó el valor
+```
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations/#generic)
+]=]
+LUADOC_DESC_VARARG=
+[=[
+Usado principalmente para el soporte obsoleto de annotaciones de EmmyLua.
+Proveer tipos o permitir descripciones no están soportados con `@vararg`
+
+**Se debe usar `@param` cuando se documentan parámetros (sean variables o no).**
+
+## Sintaxis
+`@vararg `
+
+## Uso
+```
+---Concatena strings
+---@vararg string
+function concat(...) end
+```
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations/#vararg)
+]=]
+LUADOC_DESC_OVERLOAD=
+[=[
+Permite definir firmas múltiples para una función.
+
+## Sintaxis
+`---@overload fun([: ] [, [: ]]...)[: [, ]...]`
+
+## Uso
+```
+---@overload fun(t: table, value: any): number
+function table.insert(t, position, value) end
+```
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations#overload)
+]=]
+LUADOC_DESC_DEPRECATED=
+[=[
+Marca una función como obsoleta. Como consecuencia, cualquier llamado a una
+función obsoleta se ~~tarja~~
+
+## Sintaxis
+`---@deprecated`
+
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations#deprecated)
+]=]
+LUADOC_DESC_META=
+[=[
+Indica que este es un archivo meta y debe ser usado solo para definiciones e intellisense.
+
+Hay tres distinciones principales que hay que notar con los archivos meta:
+1. No hay intellisense basado en el contexto en un archivo meta
+2. El colocar el cursor sobre una ruta de un `require` en un archivo meta muestra `[meta]` en vez de una ruta absolta
+3. La función `Busca referencias` ignora los archivos meta
+
+## Sintaxis
+`---@meta`
+
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations#meta)
+]=]
+LUADOC_DESC_VERSION=
+[=[
+Especifica versiones de Lua en las que esta función se encuentra.
+
+Versiones de Lua: `5.1`, `5.2`, `5.3`, `5.4`, `JIT`.
+
+Se requiere la configuración `Diagnostics: Needed File Status`.
+
+## Sintaxis
+`---@version [, ]...`
+
+## Uso
+### En general
+```
+---@version JIT
+function onlyWorksInJIT() end
+```
+### Especificando múltiples versiones
+```
+---@version <5.2,JIT
+function oldLuaOnly() end
+```
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations#version)
+]=]
+LUADOC_DESC_SEE=
+[=[
+Define algo que puede ser revisado para más información
+
+## Sintaxis
+`---@see `
+
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations#see)
+]=]
+LUADOC_DESC_DIAGNOSTIC=
+[=[
+Habilita o deshabilita el diagnóstico para errores, advertencias, etc.
+
+Acciones: deshabilita (`disable`), habilita (`enable`), deshabilita para esta lÃnea (`disable-line`), deshabilita para la siguiente lÃnea (`disable-next-line`)
+
+[Nombres](https://github.com/LuaLS/lua-language-server/blob/cbb6e6224094c4eb874ea192c5f85a6cba099588/script/proto/define.lua#L54)
+
+## Sintaxis
+`---@diagnostic [: ]`
+
+## Uso
+### Deshabilita para la siguiente lÃnea
+```
+---@diagnostic disable-next-line: undefined-global
+```
+
+### Cambio manual
+```
+---@diagnostic disable: unused-local
+local sinUso = "hola mundo"
+---@diagnostic enable: unused-local
+```
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations#diagnostic)
+]=]
+LUADOC_DESC_MODULE=
+[=[
+Provee la semántica para `require`.
+
+## Sintaxis
+`---@module <'nombre_módulo'>`
+
+## Uso
+```
+---@module 'string.utils'
+local stringUtils
+-- Esto es funcionalmente equivalente a:
+local mod = require('string.utils')
+```
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations#module)
+]=]
+LUADOC_DESC_ASYNC=
+[=[
+Marca una función como "asÃncrona".
+
+## Sintaxis
+`---@async`
+
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations#async)
+]=]
+LUADOC_DESC_NODISCARD=
+[=[
+Previene que los valores retornados por esta función sean ignorados o descartados.
+Esto alza la advertencia `discard-returns` si se ignoran los valores retornados.
+
+## Sintaxis
+`---@nodiscard`
+
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations#nodiscard)
+]=]
+LUADOC_DESC_CAST=
+[=[
+Se permite la conversión de tipo.
+
+## Sintaxis
+`@cast <[+|-]tipo>[, <[+|-]tipo>]...`
+
+## Uso
+### Sobreescritura del tipo
+```
+---@type integer
+local x --> integer
+
+---@cast x string
+print(x) --> string
+```
+### Agregar un tipo
+```
+---@type string
+local x --> string
+
+---@cast x +boolean, +number
+print(x) --> string|boolean|number
+```
+### Remover un tipo
+```
+---@type string|table
+local x --> string|table
+
+---@cast x -string
+print(x) --> table
+```
+---
+[Revisar en la Wiki](https://luals.github.io/wiki/annotations#cast)
+]=]
+LUADOC_DESC_OPERATOR=
+[=[
+Provee la declaración de tipo para [metamétodos de operador](http://lua-users.org/wiki/MetatableEvents).
+
+## Sintaxis
+`@operator [(tipo_de_entrada)]:`
+
+## Uso
+### Metamétodo para suma de Vector
+```
+---@class Vector
+---@operator add(Vector):Vector
+
+vA = Vector.new(1, 2, 3)
+vB = Vector.new(10, 20, 30)
+
+vC = vA + vB
+--> Vector
+```
+### Resta unaria
+```
+---@class Passcode
+---@operator unm:integer
+
+pA = Passcode.new(1234)
+pB = -pA
+--> integer
+```
+[View Request](https://github.com/LuaLS/lua-language-server/issues/599)
+]=]
+LUADOC_DESC_ENUM=
+[=[
+Marca una tabla como una enumeración. Revise [`@alias`](https://luals.github.io/wiki/annotations#alias)
+si se desea una enumeración, pero no se puede definir como una tabla de Lua.
+Mark a table as an enum. If you want an enum but can't define it as a Lua
+
+## Sintaxis
+`@enum `
+
+## Uso
+```
+---@enum colores
+local colores = {
+ blanco = 0,
+ naranjo = 2,
+ amarillo = 4,
+ verde = 8,
+ negro = 16,
+}
+
+---@param color colores
+local function asignaColor(color) end
+
+-- El completado y la información-bajo-el-cursor se provee para el siguiente parámetro
+asignaColor(colores.verde)
+```
+]=]
+LUADOC_DESC_SOURCE=
+[=[
+Provee una referencia a algún código fuente que vive en otro archivo.
+Cuando se busque por la definición de un Ãtem, se ocupa su `@source`.
+
+## Sintaxis
+`@source `
+
+## Uso
+```
+---Se pueden ocupar rutas absolutas
+---@source C:/Users/me/Documents/program/myFile.c
+local a
+
+---También URIs
+---@source file:///C:/Users/me/Documents/program/myFile.c:10
+local b
+
+---También rutas relativas
+---@source local/file.c
+local c
+
+---Se puede incluir los números de lÃnea y caracter
+---@source local/file.c:10:8
+local d
+```
+]=]
+LUADOC_DESC_PACKAGE=
+[=[
+Marca una función como privada del archivo en la que fue definida. Una función
+empacada (en un cierto paquete) no puede ser accedida desde otro archivo
+
+## Sintaxis
+`@package`
+
+## Uso
+```
+---@class Animal
+---@field private ojos integer
+local Animal = {}
+
+---@package
+---No se puede acceder desde otro archivo
+function Animal:conteoDeOjos()
+ return self.ojos
+end
+```
+]=]
+LUADOC_DESC_PRIVATE=
+[=[
+Marca una función como privada de una clase. Las funciones privadas pueden
+ser accedidas solo dentro de su clase y no por clases hijas.
+
+## Sintaxis
+`@private`
+
+## Uso
+```
+---@class Animal
+---@field private ojos integer
+local Animal = {}
+
+---@private
+function Animal:conteoDeOjos()
+ return self.ojos
+end
+
+---@class Perro:Animal
+local miPerro = {}
+
+---esto no está permitido
+myDog:conteoDeOjos();
+```
+]=]
+LUADOC_DESC_PROTECTED=
+[=[
+Marca una función como protegida de una clase. Las funciones protegidas pueden
+ser accedidas solo dentro de su clase o sus clases hijas.
+
+## Sintaxis
+`@protected`
+
+## Uso
+```
+---@class Animal
+---@field private ojos integer
+local Animal = {}
+
+---@protected
+function Animal:conteoDeOjos()
+ return self.ojos
+end
+
+---@class Perro:Animal
+local miPerro = {}
+
+---Permitido dado que la función es protegida y no privada.
+myDog:conteoDeOjos();
+```
+]=]
diff --git a/nvim/mason/packages/lua-language-server/libexec/locale/es-419/setting.lua b/nvim/mason/packages/lua-language-server/libexec/locale/es-419/setting.lua
new file mode 100644
index 0000000..f7d7648
--- /dev/null
+++ b/nvim/mason/packages/lua-language-server/libexec/locale/es-419/setting.lua
@@ -0,0 +1,464 @@
+---@diagnostic disable: undefined-global
+
+config.addonManager.enable =
+"Si el manejador de extensiones está habilitado."
+config.addonManager.repositoryBranch =
+"Especifica la rama de git usada por el manejador de extensiones."
+config.addonManager.repositoryPath =
+"Especifica la ruta git usada por el manejador de extensiones."
+
+config.runtime.version =
+"Versión de Lua que se ejecuta."
+config.runtime.path =
+[[
+Cuando se ocupa un `require`, cómo se encuentra el archivo basado en el nombre de entrada.
+
+Asignar esta configuración a `?/init.lua` significa que cuando se ingresa `require 'myfile'` se busca en `${workspace}/myfile/init.lua` desde los archivos cargados.
+Si `runtime.pathStrict` es `false`, también se busca en `${workspace}/**/myfile/init.lua`.
+Si se desea cargar archivos fuera del espacio de trabajo, se debe asignar `Lua.workspace.library` primero.
+]]
+config.runtime.pathStrict =
+'Cuando está habilitado, `runtime.path` sólo buscará en el primer nivel de directorios, vea la descripción de `runtime.path`.'
+config.runtime.special =
+[[Las variables globales personalizadas son consideradas variables intrÃnsecas, y el servidor de lenguage proveerá un soporte especial.
+El siguiente ejemplo muestra que 'include' es tratado como 'require'.
+```json
+"Lua.runtime.special" : {
+ "include" : "require"
+}
+```
+]]
+config.runtime.unicodeName =
+"Se permiten los caracteres unicode en los nombres."
+config.runtime.nonstandardSymbol =
+"Soporte de sÃmbolos no estándar. Asegúrese que la versión de Lua que se ejecuta soporte estos sÃmbolos."
+config.runtime.plugin =
+"Ruta de plugin. Revise [la wiki](https://luals.github.io/wiki/plugins) para más información."
+config.runtime.pluginArgs =
+"Argumentos adicionals al plugin."
+config.runtime.fileEncoding =
+"Codificación de archivo. La opción `ansi` solo está disponible en la plataforma `Windows`."
+config.runtime.builtin =
+[[
+Ajuste de la habilitación de biblioteca interna provista. Puede deshabilitar (o redefinir) las bibliotecas inexistentes de acuerdo al ambiente de ejecución.
+
+* `default`: Indica que la biblioteca será habilitada o deshabilitada de acuerdo a la versión que se ejecuta.
+* `enable`: Habilitada
+* `disable`: Deshabilitada
+]]
+config.runtime.meta =
+'Formato del nombre del directoria de los archivos meta.'
+config.diagnostics.enable =
+"Habilita los diagnósticos."
+config.diagnostics.disable =
+"Deshabilita los diagnósticos (Usa código en corchetes bajo el cursor)."
+config.diagnostics.globals =
+"Variables globales definidas."
+config.diagnostics.globalsRegex =
+"Encuentra variables globales definidas usando esta expresión regular."
+config.diagnostics.severity =
+[[
+Modifica el la severirad de los diagnósticos.
+
+Agregue `!` al final para descartar la configuración `diagnostics.groupSeverity`.
+]]
+config.diagnostics.neededFileStatus =
+[[
+* Opened: Solo diagnostica los archivos abiertos
+* Any: diagnostica todos los archivos
+* None: deshabilita este diagnóstico
+
+Agregue `!` al final para descartar la configuración `diagnostics.groupFileStatus`.
+]]
+config.diagnostics.groupSeverity =
+[[
+Modifica el la severirad de los diagnósticos en un grupo.
+`Fallback` significa que los diagnósticos en este grupo son controlados con una severida separada de `diagnostics.severity`.
+Otras configuraciones descartan las configuraciones individuales que no terminen en `!`.
+]]
+config.diagnostics.groupFileStatus =
+[[
+Modifica los diagnósticos de archivos requeridos en un grupo.
+
+* Opened: solo diagnostica los archivos abiertos
+* Any: diagnostica todos los archivos
+* None: deshabilita este diagnóstico
+
+`Fallback` significa que los diagnósticos en este grupo son controlados con una severida separada de `diagnostics.neededFileStatus`.
+Otras configuraciones descartan las configuraciones individuales que no terminen en `!`.
+]]
+config.diagnostics.workspaceEvent =
+"Fija el tiempo para lanzar los diagnósticos del espacio de trabajo."
+config.diagnostics.workspaceEvent.OnChange =
+"Lanza los diagnósticos del espacio de trabajo cuando se cambie el archivo."
+config.diagnostics.workspaceEvent.OnSave =
+"Lanza los diagnósticos del espacio de trabajo cuando se guarde el archivo."
+config.diagnostics.workspaceEvent.None =
+"Deshabilita los diagnósticos del espacio de trabajo."
+config.diagnostics.workspaceDelay =
+"Latencia en milisegundos para diagnósticos del espacio de trabajo."
+config.diagnostics.workspaceRate =
+"Tasa porcentual de diagnósticos del espacio de trabajo. Decremente este valor para reducir el uso de CPU, también reduciendo la velocidad de los diagnósticos del espacio de trabajo. El diagnóstico del archivo que esté editando siempre se hace a toda velocidad y no es afectado por esta configuración."
+config.diagnostics.libraryFiles =
+"Cómo diagnosticar los archivos cargados via `Lua.workspace.library`."
+config.diagnostics.libraryFiles.Enable =
+"Estos archivos siempre se diagnostican."
+config.diagnostics.libraryFiles.Opened =
+"Estos archivos se diagnostican solo cuando se abren."
+config.diagnostics.libraryFiles.Disable =
+"Estos archivos no se diagnostican."
+config.diagnostics.ignoredFiles =
+"Cómo diagnosticar los archivos ignorados."
+config.diagnostics.ignoredFiles.Enable =
+"Estos archivos siempre se diagnostican."
+config.diagnostics.ignoredFiles.Opened =
+"Estos archivos se diagnostican solo cuando se abren."
+config.diagnostics.ignoredFiles.Disable =
+"Estos archivos no se diagnostican."
+config.diagnostics.disableScheme =
+'Los archivos de Lua que siguen el siguiente esquema no se diagnostican.'
+config.diagnostics.unusedLocalExclude =
+'Las variables que calcen con el siguiente patrón no se diagnostican con `unused-local`.'
+config.workspace.ignoreDir =
+"Directorios y archivos ignorados (se usa la misma gramática que en `.gitignore`)"
+config.workspace.ignoreSubmodules =
+"Ignora submódulos."
+config.workspace.useGitIgnore =
+"Ignora los archivos enlistados en `gitignore` ."
+config.workspace.maxPreload =
+"Máxima pre-carga de archivos."
+config.workspace.preloadFileSize =
+"Cuando se pre-carga, se omiten los archivos más grandes que este valor (en KB)."
+config.workspace.library =
+"Además de los del espacio de trabajo actual, se cargan archivos de estos directorios. Los archivos en estos directorios serán tratados como bibliotecas con código externo y algunas caracterÃsticas (como renombrar campos) no modificarán estos archivos."
+config.workspace.checkThirdParty =
+[[
+Detección y adaptación automática de bibliotecas externas. Actualmente soportadas:
+
+* OpenResty
+* Cocos4.0
+* LÖVE
+* LÖVR
+* skynet
+* Jass
+]]
+config.workspace.userThirdParty =
+'Rutas archivos de configuración para bibliotecas externas privadas. Revise [el archivo de configuración](https://github.com/LuaLS/lua-language-server/tree/master/meta/3rd) provisto.'
+config.workspace.supportScheme =
+'El servidor de lenguage será provisto para los archivos de Lua del siguiente esquema.'
+config.completion.enable =
+'Habilita la completación.'
+config.completion.callSnippet =
+'Muestra snippets para llamadas de funciones.'
+config.completion.callSnippet.Disable =
+"Solo muestra `función nombre`."
+config.completion.callSnippet.Both =
+"Muestra `función nombre` y `llamar al snippet`."
+config.completion.callSnippet.Replace =
+"Solo muestra `llamar al snippet`."
+config.completion.keywordSnippet =
+'Muestra snippets con sintaxis de palabras clave.'
+config.completion.keywordSnippet.Disable =
+"Solo muestra `palabra clave`."
+config.completion.keywordSnippet.Both =
+"Muestra `palabra clave` y `snippet de sintaxis`."
+config.completion.keywordSnippet.Replace =
+"Solo muestra `snippet de sintaxis`."
+config.completion.displayContext =
+"La prevista de la sugerencia del snippet de código relevante ayuda a entender el uso de la sugerenecia. El número fijado indica el número de lÃneas interceptadas en el fragmento de código. Fijando en `0` se deshabilita esta caracterÃstica."
+config.completion.workspaceWord =
+"Si es que el la palabra contextual presentada contiene contenido de otros archivos en el espacio de trabajo."
+config.completion.showWord =
+"Muestra palabras contextuales en las sugerencias."
+config.completion.showWord.Enable =
+"Siempre muestra palabras contextuales en las sugerencias."
+config.completion.showWord.Fallback =
+"Las palabras contextuales solo se muestran si las sugerencias basadas en la semántica no están provistas."
+config.completion.showWord.Disable =
+"Sin presentar las palabras contextuales."
+config.completion.autoRequire =
+"Agrega automáticamente el `require` correspondiente cuando la entrada se parece a un nombre de archivo."
+config.completion.showParams =
+"Muestra los parámetros en la lista de completado. Cuando la función tiene múltiples definiciones, se mostrarán por separado."
+config.completion.requireSeparator =
+"Separador usado en `require`."
+config.completion.postfix =
+"El sÃmbolo usado para lanzar la sugerencia posfija."
+config.color.mode =
+"Modo de coloración."
+config.color.mode.Semantic =
+"Coloración semántica. Puede ser necesario asignar `editor.semanticHighlighting.enabled` a `true` para que tenga efecto."
+config.color.mode.SemanticEnhanced =
+"Coloración de semántica avanzada. Igual que `Semántica`, pero con análisis adicional que hace que se requira computación más cara."
+config.color.mode.Grammar =
+"Coloración de la gramática."
+config.semantic.enable =
+"Habilita la coloración semántica. Puede ser necesario asignar `editor.semanticHighlighting.enabled` a `true` para que tenga efecto."
+config.semantic.variable =
+"Coloración semántica de variables, campos y parámetros."
+config.semantic.annotation =
+"Coloración de las anotaciones de tipo."
+config.semantic.keyword =
+"Coloración semántica de palabras clave, literales y operadores. Se necesita habilitar esta caracterÃstica si su editor no puede hacer coloración sintáctica."
+config.signatureHelp.enable =
+"Habilita la ayuda de firma."
+config.hover.enable =
+"Habilita la información bajo el cursor."
+config.hover.viewString =
+"Ubica el cursor bajo un string para ver su contenido (solo si el literal contiene un caracter de escape)."
+config.hover.viewStringMax =
+"Largo máximo de la información bajo el cursor para ver el contenido de un string."
+config.hover.viewNumber =
+"Ubica el cursor para ver el contenido numérico (solo si el literal no es decimal)."
+config.hover.fieldInfer =
+"Cuando se ubica el cursor para ver una tabla, la inferencia de tipo se realizará para cada campo. Cuando el tiempo acumulado de la inferencia de tipo alcanza el valor fijado (en MS), la inferencia de tipo para los campos subsecuentes será omitida."
+config.hover.previewFields =
+"Cuando se ubica el cursor para ver una tabla, fija el máximo numero de previstas para los campos."
+config.hover.enumsLimit =
+"Cuando el valor corresponde a múltiples tipos, fija el lÃmite de tipos en despliegue."
+config.hover.expandAlias =
+[[
+Expandir o no los alias. Por ejemplo, la expansión de `---@alias miTipo boolean|number` aparece como `boolean|number`, caso contrarior, aparece como `miTipo`.
+]]
+config.develop.enable =
+'Modo de desarrollador. No debe habilitarlo, el rendimiento se verá afectado.'
+config.develop.debuggerPort =
+'Puerto en que el depurador escucha.'
+config.develop.debuggerWait =
+'Suspender después de que el depurador se conecte.'
+config.intelliSense.searchDepth =
+'Fija la profundidad de búsqueda para IntelliSense. El incrementar este valor aumenta la precisión, pero empeora el rendimiento. Diferentes espacios de trabajo tienen diferente tolerancia para esta configuración. Ajústese al valor apropiado.'
+config.intelliSense.fastGlobal =
+'En la completación de variable global, y entrada de suspensión de vista `_G`. Esto reduce levemente la precisión de la especulación de tipo, pero tiene una mejora de rendimiento notable para proyectos que ocupan harto las variables globales.'
+config.window.statusBar =
+'Muestra el estado de la extensión en la barra de estado.'
+config.window.progressBar =
+'Muestra la barra de progreso en la barra de estado.'
+config.hint.enable =
+'Habilita pistas en lÃnea.'
+config.hint.paramType =
+'Muestra las pistas de tipo al parámetro de las funciones.'
+config.hint.setType =
+'Muestra las pistas de tipo en las asignación.'
+config.hint.paramName =
+'Muestra las pistas de tipo en las llamadas a funciones.'
+config.hint.paramName.All =
+'Se muestran odos los tipos de los parámetros.'
+config.hint.paramName.Literal =
+'Se muestran solo los parámetros de tipos literales.'
+config.hint.paramName.Disable =
+'Deshabilita las pistas de los parámetros.'
+config.hint.arrayIndex =
+'Muestra las pistas de los Ãndices de arreglos cuando se construye una tabla.'
+config.hint.arrayIndex.Enable =
+'Muestra las pistas en todas las tablas.'
+config.hint.arrayIndex.Auto =
+'Muestra las pistas solo cuando la tabla tiene más de 3 Ãtemes, o cuando la tabla es mixta.'
+config.hint.arrayIndex.Disable =
+'Deshabilita las pistas en de los Ãndices de arreglos.'
+config.hint.await =
+'Si la función que se llama está marcada con `---@async`, pregunta por un `await` en la llamada.'
+config.hint.semicolon =
+'Si no hay punto y coma al final de la sentencia, despliega un punto y coma virtual.'
+config.hint.semicolon.All =
+'Todas las sentencias con un punto y coma virtual desplegado.'
+config.hint.semicolon.SameLine =
+'Cuando dos sentencias están en la misma lÃnea, despliega un punto y coma entre ellas.'
+config.hint.semicolon.Disable =
+'Deshabilita punto y coma virtuales.'
+config.codeLens.enable =
+'Habilita el lente para código.'
+config.format.enable =
+'Habilita el formateador de código.'
+config.format.defaultConfig =
+[[
+La configuración de formateo predeterminada. Tiene menor prioridad que el archivo `.editorconfig`
+en el espacio de trabajo.
+Revise [la documentación del formateador](https://github.com/CppCXY/EmmyLuaCodeStyle/tree/master/docs)
+para aprender más sobre su uso.
+]]
+config.spell.dict =
+'Palabras extra para el corrector ortográfico.'
+config.nameStyle.config =
+'Configuración de estilo para nombres.'
+config.telemetry.enable =
+[[
+Habilita la telemetrÃa para enviar información del editor y registros de errores por la red. Lea nuestra polÃtica de privacidad [aquà (en inglés)](https://luals.github.io/privacy#language-server).
+]]
+config.misc.parameters =
+'[Parámetros de la lÃnea de comando](https://github.com/LuaLS/lua-telemetry-server/tree/master/method) para iniciar el servidor de lenguage en VSCode.'
+config.misc.executablePath =
+'Especifica la ruta del ejecutable en VSCode.'
+config.language.fixIndent =
+'(Solo en VSCode) Arregla la auto-indentación incorrecta, como aquella cuando los quiebres de lÃnea ocurren dentro de un string que contengan la palabra "function".'
+config.language.completeAnnotation =
+'(Solo en VSCode) Inserta automáticamente un "---@ " después de un quiebre de lÃnea que sucede a una anotación.'
+config.type.castNumberToInteger =
+'Se permite asignar el tipo "número" al tipo "entero".'
+config.type.weakUnionCheck =
+[[
+Una vez que un sub-tipo de un tipo de unión satisface la condición, el tipo de unión también satisface la condición.
+
+Cuando esta configuración es `false`, el tipo `number|boolean` no puede ser asignado al tipo `number`. Solo se puede con `true`.
+]]
+config.type.weakNilCheck =
+[[
+Cuando se revisa el tipo de un tipo de unión, los `nil` dentro son ignorados.
+
+Cuando esta configuración es `false`, el tipo `number|nil` no puede ser asignado al tipo `number`. Solo se puede con `true`.
+]]
+config.type.inferParamType =
+[[
+Cuando un tipo de parámetro no está anotado, se infiere su tipo de los lugares donde la función es llamada.
+
+Cuando esta configuración es `false`, el tipo del parámetro `any` cuando no puede ser anotado.
+]]
+config.type.checkTableShape =
+[[
+Chequea estrictamente la forma de la tabla.
+]]
+config.doc.privateName =
+'Trata los nombres especÃficos de campo como privados. Por ejemplo `m_*` significa `XXX.m_id` y `XXX.m_tipo` son privados, por lo que solo pueden ser accedidos donde se define la clase.'
+config.doc.protectedName =
+'Trata los nombres especÃficos de campo como protegidos. Por ejemplo `m_*` significa `XXX.m_id` y `XXX.m_tipo` son privados, por lo que solo pueden ser accedidos donde se define la clase y sus subclases.'
+config.doc.packageName =
+'Trata los nombres especÃficos de campo como del paquete. Por ejemplo `m_*` significa `XXX.m_id` y `XXX.m_tipo` son de paquete, por lo que solo pueden ser accedidos en el archivo donde son definidos.'
+config.diagnostics['unused-local'] =
+'Habilita el diagnóstico de variables local sin uso.'
+config.diagnostics['unused-function'] =
+'Habilita el diagnóstico funcines sin uso.'
+config.diagnostics['undefined-global'] =
+'Habilita el diagnóstico de variables globales sin definir.'
+config.diagnostics['global-in-nil-env'] =
+'Habilita el diagnóstico para la prohibición de uso de variables globales (`_ENV` se fija a `nil`).'
+config.diagnostics['unused-label'] =
+'Habilita el diagnóstico de etiquetas sin uso.'
+config.diagnostics['unused-vararg'] =
+'Habilita el diagnóstico de expresión de número variable de argumentos (vararg) sin uso.'
+config.diagnostics['trailing-space'] =
+'Habilita el diagnóstico de espacios al final de lÃnea.'
+config.diagnostics['redefined-local'] =
+'Habilita el diagnóstico de variables locals redefinidas.'
+config.diagnostics['newline-call'] =
+'Habilita el diagnóstico de llamadas en lÃnea nueva. Se alza un error en las lÃneas que comienzan con `(`, lo que se lee sintácticamente como una llamada a la lÃnea anterior.'
+config.diagnostics['newfield-call'] =
+'Habilita el diagnóstico de campo nuevo en una llamada. Se alza un error cuando los paréntesis de una llamada a una función aparecen en la siguiente lÃnea cuando se define un campo en una tabla.'
+config.diagnostics['redundant-parameter'] =
+'Habilita el diagnóstico de parámetros redundantes de una función.'
+config.diagnostics['ambiguity-1'] =
+'Habilita el diagnóstico de precedencia de operadores ambiguos. Por ejemplo, ante la expresión `num or 0 + 1` se sugerirrá `(num or 0) + 1`.'
+config.diagnostics['lowercase-global'] =
+'Habilita el diagnóstico de definiciones de variables globacels con minúsculas.'
+config.diagnostics['undefined-env-child'] =
+'Habilita el diagnóstico de variables de ambientes sin definir. Se alza un error cuando a la tabla `_ENV` se le asigna una tabla literal nueva, pero la variable global usada no está presente en el ambiente global.'
+config.diagnostics['duplicate-index'] =
+'Habilita el diagnóstico de Ãndices de tabla duplicados.'
+config.diagnostics['empty-block'] =
+'Habilita el diagnóstico de bloques de código vacÃos.'
+config.diagnostics['redundant-value'] =
+'Habilita el diagnóstico de valores asignados redundantemente. Se alza un error en una asignación, cuando el número de valores es mayor que el número de objetos a los cuales se les asigna.'
+config.diagnostics['assign-type-mismatch'] =
+'Habilita el diagnóstico para asignaciones en las cuales el valor del tipo no calza con el tipo de la variable siendo asignada.'
+config.diagnostics['await-in-sync'] =
+'Habilita el diagnóstico para llamadas a funciones asÃncronas dentro de una función sÃncrona.'
+config.diagnostics['cast-local-type'] =
+'Habilita el diagnóstico para conversión de tipos de variables locales donde el tipo objetivo no calza con el tipo definido.'
+config.diagnostics['cast-type-mismatch'] =
+'Habilita el diagnóstico para conversiones de tipos donde el tipo objetivo no calza con el tipo inicial.'
+config.diagnostics['circular-doc-class'] =
+'Habilita el diagnóstico para pares de clases que heredan una de la otra, introduciendo una relación circular.'
+config.diagnostics['close-non-object'] =
+'Habilita el diagnóstico para intentos de cerra una variable con un no-objeto.'
+config.diagnostics['code-after-break'] =
+'Habilita el diagnóstico para el código que viene después de un `break` en un bucle.'
+config.diagnostics['codestyle-check'] =
+'Habilita el diagnóstico para lÃneas formateadas incorrectamente.'
+config.diagnostics['count-down-loop'] =
+'Habilita el diagnóstico para bucles `for` en los cuales nunca se alcanza su máximo o lÃmite por que el bucle es incremental en vez de decremental.'
+config.diagnostics['deprecated'] =
+'Habilita el diagnóstico para resaltar APIs obsoletas.'
+config.diagnostics['different-requires'] =
+'Habilita el diagnóstico para archivos que son requeridos con dos rutas distintas.'
+config.diagnostics['discard-returns'] =
+'Habilita el diagnóstico para llamadas de funciones anotadas con `---@nodiscard` en las cuales se ignore los valores retornados.'
+config.diagnostics['doc-field-no-class'] =
+'Habilita el diagnóstico para resaltar una anotación de campo sin una anotación de clase que lo defina.'
+config.diagnostics['duplicate-doc-alias'] =
+'Habilita el diagnóstico para nombres de alias duplicados en una anotación.'
+config.diagnostics['duplicate-doc-field'] =
+'Habilita el diagnóstico para nombres de campo duplicados en una anotación.'
+config.diagnostics['duplicate-doc-param'] =
+'Habilita el diagnóstico para nombres de parámetros duplicados en una anotación.'
+config.diagnostics['duplicate-set-field'] =
+'Habilita el diagnóstico para cuando se asigna el mismo campo en una clase más de una vez.'
+config.diagnostics['incomplete-signature-doc'] =
+'Habilita el diagnóstico para anotaciones @param o @return incompletas para funciones.'
+config.diagnostics['invisible'] =
+'Habilita el diagnóstico para accesos a campos que son invisibles.'
+config.diagnostics['missing-global-doc'] =
+'Habilita el diagnóstico para globales faltantes. Las funciones globales deben tener un comentario y anotaciones para todos sus parámetros y valores retornados.'
+config.diagnostics['missing-local-export-doc'] =
+'Habilita el diagnóstico para locales exportadas. Las funciones locales deben tener un comentario y anotaciones para todos sus parámetros y valores retornados.'
+config.diagnostics['missing-parameter'] =
+'Habilita el diagnóstico para llamados de funciones donde el número de argumentos es menore que el número de parámetros anotados de la función.'
+config.diagnostics['missing-return'] =
+'Habilita el diagnóstico para para funciones con anotaciones de retorno que no tienen la expresión `return …`.'
+config.diagnostics['missing-return-value'] =
+'Habilita el diagnóstico para expresiones `return …` sin valores aunque la función que la contiene declare retornos.'
+config.diagnostics['need-check-nil'] =
+'Habilita el diagnóstico para usos de variables si `nil` o un valor opcional (potencialmente `nil`) haya sido asignado a la variable anteriormente.'
+config.diagnostics['no-unknown'] =
+'Habilita el diagnóstico para los casos en que el tipo no puede ser inferido.'
+config.diagnostics['not-yieldable'] =
+'Habilita el diagnóstico para llamadas a `coroutine.yield()` cuando no esté permitido.'
+config.diagnostics['param-type-mismatch'] =
+'Habilita el diagnóstico para llamadas a funciones donde el tipo de un parámetro provisto no calza con el tipo de la definición anotado de la función.'
+config.diagnostics['redundant-return'] =
+'Habilita el diagnóstico para sentencias de retorno que no son necesarias porque la función terminarÃa de igual manera.'
+config.diagnostics['redundant-return-value']=
+'Habilita el diagnóstico para sentencias de retorno que retornan un valor extra que no fue especificado por una anotación de retorno.'
+config.diagnostics['return-type-mismatch'] =
+'Habilita el diagnóstico para valores retornados cuyo tipo no calza con el tipo declarado en la anotación correspondiente de la función.'
+config.diagnostics['spell-check'] =
+'Habilita el diagnóstico para errores tipográficos en strings.'
+config.diagnostics['name-style-check'] =
+'Habilita el diagnóstico para el estilo de nombres.'
+config.diagnostics['unbalanced-assignments']=
+'Habilita el diagnóstico para asignaciones múltiplies si no todas las variables obtienen un valor (por ejemplo, `local x,y = 1`).'
+config.diagnostics['undefined-doc-class'] =
+'Habilita el diagnóstico para las anotaciones de clase en las cuales una clase sin definir es referenciada.'
+config.diagnostics['undefined-doc-name'] =
+'Habilita el diagnóstico para anotaciones de tipo que referencian a un tipo o alias sin definir.'
+config.diagnostics['undefined-doc-param'] =
+'Habilita el diagnóstico para casos en que una anotación de parámetro es dado sin declarar el parámetro en la definición de la función.'
+config.diagnostics['undefined-field'] =
+'Habilita el diagnóstico para los casos en que se lee un campo sin definir de una variable.'
+config.diagnostics['unknown-cast-variable'] =
+'Habilita el diagnóstico para conversiones de tipo de variables sin definir.'
+config.diagnostics['unknown-diag-code'] =
+'Habilita el diagnóstico para los casos en que un código desconocido de diagnóstico es ingresado.'
+config.diagnostics['unknown-operator'] =
+'Habilita el diagnóstico para operadores desconocidos.'
+config.diagnostics['unreachable-code'] =
+'Habilita el diagnóstico para código inalcanzable.'
+config.diagnostics['global-element'] =
+'Habilita el diagnóstico que alerta sobre elementos globales.'
+config.typeFormat.config =
+'Configura el comportamiento del formateo mientras se tipea código Lua.'
+config.typeFormat.config.auto_complete_end =
+'Controla si se completa automáticamente con `end` en las posiciones correspondientes.'
+config.typeFormat.config.auto_complete_table_sep =
+'Controla si se agrega automáticamente un separador al final de la declaración de una tabla.'
+config.typeFormat.config.format_line =
+'Controla si una lÃnea se formatea'
+
+command.exportDocument =
+'Lua: Exporta Documento ...'
+command.addon_manager.open =
+'Lua: Abre el Manejador de Extensiones ...'
+command.reloadFFIMeta =
+'Lua: Recarga meta de ffi para luajit'
+command.startServer =
+'Lua: (debug) Carga el Servidor de Lenguaje'
+command.stopServer =
+'Lua: (debug) Detén el Servidor de Lenguaje'
diff --git a/nvim/mason/packages/lua-language-server/libexec/locale/ja-jp/meta.lua b/nvim/mason/packages/lua-language-server/libexec/locale/ja-jp/meta.lua
new file mode 100644
index 0000000..9c88df2
--- /dev/null
+++ b/nvim/mason/packages/lua-language-server/libexec/locale/ja-jp/meta.lua
@@ -0,0 +1,761 @@
+---@diagnostic disable: undefined-global, lowercase-global
+
+arg =
+'LUAスタンドアãƒãƒ¼ãƒ³ã«æ¸¡ã™å¼•æ•°'
+
+assert =
+'引数 v ãŒå½ï¼ˆi.e., `nil` ã¾ãŸã¯ `false`)ã®å ´åˆã€ã‚¨ãƒ©ãƒ¼ã‚’発生ã•ã›ã‚‹ã€‚ãれ以外ã®å ´åˆã¯ã€ã™ã¹ã¦ã®å¼•æ•°ã‚’è¿”ãˆã™ã€‚エラーãŒç™ºç”Ÿã—ãŸéš›ã€`message` ãŒã‚¨ãƒ©ãƒ¼ã‚ªãƒ–ジェクトã«ãªã‚‹ã€‚`message` ãŒæŒ‡å®šã•れã¦ã„ãªã„å ´åˆã€ãƒ‡ãƒ•ォルトã§ã‚¨ãƒ©ãƒ¼ã‚ªãƒ–ジェクト㌠`"assertion failed!"` ã«ãªã‚‹ã€‚'
+
+cgopt.collect =
+'完全ãªã‚¬ãƒ™ãƒ¼ã‚¸ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã‚µã‚¤ã‚¯ãƒ«ã‚’実行ã™ã‚‹ã€‚'
+cgopt.stop =
+'è‡ªå‹•å®Ÿè¡Œã‚’åœæ¢ã™ã‚‹ã€‚'
+cgopt.restart =
+'自動実行をå†é–‹ã™ã‚‹ã€‚'
+cgopt.count =
+'利用ã•れã¦ã„るメモリé‡ã®åˆè¨ˆã‚’ã‚ãƒãƒã‚¤ãƒˆå˜ä½ã§è¿”ã™ã€‚'
+cgopt.step =
+'ガベージコレクションã®ã‚¹ãƒ†ãƒƒãƒ—を実行ã™ã‚‹ã€‚'
+cgopt.setpause =
+'`pause` ã®å€¤ã‚’è¨å®šã™ã‚‹ã€‚'
+cgopt.setstepmul =
+'`step multiplier` ã®å€¤ã‚’è¨å®šã™ã‚‹ã€‚'
+cgopt.incremental =
+'ガベージコレクションã®ãƒ¢ãƒ¼ãƒ‰ã‚’インクリメンタルã«å¤‰æ›´ã™ã‚‹ã€‚'
+cgopt.generational =
+'ガベージコレクションã®ãƒ¢ãƒ¼ãƒ‰ã‚’世代別ã«å¤‰æ›´ã™ã‚‹ã€‚'
+cgopt.isrunning =
+'ガベージコレクションãŒå®Ÿè¡Œä¸ã‹ã©ã†ã‹ã‚’è¿”ã™ã€‚'
+
+collectgarbage =
+'ã“ã®é–¢æ•°ã¯ã‚¬ãƒ™ãƒ¼ã‚¸ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³æ©Ÿèƒ½ã¸ã®æ±Žç”¨çš„ãªã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェース。第一引数 `opt` ã«å¿œã˜ã¦ç•°ãªã‚‹æ“作を実行ã™ã‚‹ã€‚'
+
+dofile =
+'指定ã•れãŸãƒ•ァイルを開ãã€ãã®å†…容をLuaãƒãƒ£ãƒ³ã‚¯ã¨ã—ã¦å®Ÿè¡Œã™ã‚‹ã€‚å¼•æ•°ãŒæŒ‡å®šã•れãªã‹ã£ãŸå ´åˆã€æ¨™æº–入力(`stdin`)ã®å†…容を実行ã™ã‚‹ã€‚ãƒãƒ£ãƒ³ã‚¯ã«ã‚ˆã£ã¦è¿”ã•れãŸã™ã¹ã¦ã®å€¤ã‚’è¿”ã™ã€‚エラーãŒç™ºç”Ÿã—ãŸå ´åˆã€ãã®ã‚¨ãƒ©ãƒ¼ãŒå‘¼ã³å‡ºã—å…ƒã¾ã§ä¼æ’ã•れる(ã¤ã¾ã‚Šã€`dofile` ã¯ä¿è·ãƒ¢ãƒ¼ãƒ‰ã§ã¯å®Ÿè¡Œã•れãªã„)。'
+
+error =
+[[
+最後ã«å®Ÿè¡Œã•れãŸä¿è·é–¢æ•°ã‚’終了ã•ã›ã€`message` をエラーオブジェクトã¨ã—ã¦è¿”ã™ã€‚
+
+一般的ã«ã¯ã€`message` ãŒæ–‡å—列ã ã£ãŸå ´åˆã«ã‚¨ãƒ©ãƒ¼ã®ç™ºç”Ÿä½ç½®ã«é–¢ã™ã‚‹æƒ…å ±ãŒãã®å…ˆç«¯ã«è¿½åŠ ã•れる。
+]]
+
+_G =
+'ã‚°ãƒãƒ¼ãƒãƒ«ç’°å¢ƒã‚’ä¿æŒã™ã‚‹ã‚°ãƒãƒ¼ãƒãƒ«å¤‰æ•°ï¼ˆé–¢æ•°ã§ã¯ãªã„)。Lua自体ãŒã“ã®å¤‰æ•°ã‚’使用ã—ãªã„ãŸã‚ã€ãã®å€¤ã‚’変更ã—ã¦ã‚‚環境ã«ã¯å½±éŸ¿ã—ãªã„ã—ã€ãã®é€†ã‚‚åŒæ§˜ã§ã‚る。より詳細ãªèª¬æ˜Žã«ã¯Â§2.2ã‚’å‚照。'
+
+getfenv =
+'関数 `f` ãŒç¾åœ¨ä½¿ç”¨ã—ã¦ã„る環境を返ã™ã€‚`f` ã¯Lua関数ã€ã¾ãŸã¯ã‚¹ã‚¿ãƒƒã‚¯ãƒ¬ãƒ™ãƒ«ã‚’指定ã™ã‚‹æ•°å—ã§ã‚る。'
+
+getmetatable =
+'`object` ã«ãƒ¡ã‚¿ãƒ†ãƒ¼ãƒ–ルãŒãªã„å ´åˆã€nil ã‚’è¿”ã™ã€‚メタテーブルãŒã‚りãã“ã« "__metatable" フィールドãŒã‚ã‚‹å ´åˆã€ãã®å€¤ã‚’è¿”ã™ã€‚ ãれ以外ã®å ´åˆã€ãƒ¡ã‚¿ãƒ†ãƒ¼ãƒ–ル自身を返ã™ã€‚' -- TODO
+
+ipairs =
+[[
+三ã¤ã®å€¤ï¼ˆã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿é–¢æ•°ã€ãƒ†ãƒ¼ãƒ–ル `t` ã€ãã—㦠`0`)を返ã™ã€‚三ã¤ã®å€¤ã¯æ¬¡ã®æ§‹æ–‡
+```lua
+ for i,v in ipairs(t) do body end
+```
+ã«ãŠã„㦠`i,v` ㌠`(1,t[1]), (2,t[2]), ...` ã¨ãªã‚‹ã‚ˆã†ã«è¨å®šã•れる。
+]]
+
+loadmode.b =
+'ãƒã‚¤ãƒŠãƒªãƒãƒ£ãƒ³ã‚¯ã®ã¿ã€‚'
+loadmode.t =
+'テã‚ストãƒãƒ£ãƒ³ã‚¯ã®ã¿ã€‚'
+loadmode.bt =
+'ãƒã‚¤ãƒŠãƒªã¨ãƒ†ã‚ストã®ä¸¡æ–¹ã€‚'
+
+load['<5.1'] =
+'`func` を繰り返ã—ã¦å‘¼ã³å‡ºã™ã“ã¨ã«ã‚ˆã£ã¦ãƒãƒ£ãƒ³ã‚¯ã‚’å–å¾—ã—ã€ãれをãƒãƒ¼ãƒ‰ã™ã‚‹ã€‚`func` ã¯æ–‡å—列を返ã™å¿…è¦ãŒã‚りã€ãれらã®çµæžœã‚’çµåˆã—ãŸã‚‚ã®ãŒãƒãƒ£ãƒ³ã‚¯ã®å€¤ã¨ãªã‚‹ã€‚'
+load['>5.2'] =
+[[
+ãƒãƒ£ãƒ³ã‚¯ã‚’ãƒãƒ¼ãƒ‰ã™ã‚‹ã€‚
+
+`chunk`ãŒæ–‡å—列ã®å ´åˆã€ãƒãƒ£ãƒ³ã‚¯ãŒãã®æ–‡å—列ã¨ãªã‚‹ã€‚`chunk` ãŒé–¢æ•°ã®å ´åˆã€ãã®é–¢æ•°ã‚’繰り返ã—ã¦å‘¼ã³å‡ºã—ãŸçµæžœãŒãŒãƒãƒ£ãƒ³ã‚¯ã®å€¤ã¨ãªã‚‹ã€‚`chunk` ã¸ã®å„呼ã³å‡ºã—ã¯ä»¥å‰ã®çµæžœã¨çµåˆã•れる文å—列ã‹ã€å復ã®çµ‚了を指ã™ç©ºã®æ–‡å—列ã€nilã€ã¾ãŸã¯ç©ºã®å€¤ã‚’è¿”ã™å¿…è¦ãŒã‚る。
+]]
+
+loadfile =
+'ファイル`filename` を一ã¤ã®ãƒãƒ£ãƒ³ã‚¯ã¨ã—ã¦ãƒãƒ¼ãƒ‰ã™ã‚‹ã€‚`filename` ãŒæŒ‡å®šã•れã¦ã„ãªã„å ´åˆã€æ¨™æº–入力ã‹ã‚‰ãƒãƒ£ãƒ³ã‚¯ã‚’ãƒãƒ¼ãƒ‰ã™ã‚‹ã€‚'
+
+loadstring =
+'指定ã•ã‚ŒãŸæ–‡å—列ã‹ã‚‰ãƒãƒ£ãƒ³ã‚¯ã‚’ãƒãƒ¼ãƒ‰ã™ã‚‹ã€‚'
+
+module =
+'モジュールを作æˆã™ã‚‹ã€‚'
+
+next =
+[[
+テーブル内ã®ã™ã¹ã¦ã®ãƒ•ィールドを走査ã™ã‚‹ãŸã‚ã®é–¢æ•°ã€‚
+走査対象ã®ãƒ†ãƒ¼ãƒ–ルã¨ç¾åœ¨ã®èµ°æŸ»ä½ç½®ã‚’示ã™ã‚ーをを引数ã«å–ã‚Šã€æ¬¡ã®ã‚ーã¨ãれã«é–¢é€£ã•れã¦ã„る値を返ã™ã€‚次ã®ã‚ーãŒãªã„å ´åˆã«ã¯ `nil` ã‚’è¿”ã™ã€‚走査ä½ç½®ãŒ `nil` ã®å ´åˆã€ãƒ†ãƒ¼ãƒ–ãƒ«ã®æœ€åˆã®ã‚ーã¨ãã®å€¤ã‚’è¿”ã™ã€‚
+
+`next`ã®èµ°æŸ»é †ã¯ä¸å®šã€‚数値をã‚ーã¨ã—ã¦æŒã¤ãƒ†ãƒ¼ãƒ–ãƒ«ã‚’æ•°å€¤é †ã§èµ°æŸ»ã—ãŸã„å ´åˆã«ã¯ `for` ã‚’ã”利用ãã ã•ã„。
+
+走査ä¸ã«å˜åœ¨ã—ãªã„フィールドã«å€¤ã‚’è¨å®šã—ãŸå ´åˆã€`next` ã®å‹•ä½œã¯æœªå®šç¾©ã€‚ãŸã ã—ã€æ—¢å˜ã®ãƒ•ィールドを変更ã™ã‚‹ã“ã¨ã¯å¯èƒ½ã€‚特ã«ã€æ—¢å˜ã®ãƒ•ィールドを `nil` ã«è¨å®šã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã€‚
+]]
+
+pairs =
+[[
+テーブル `t` ã« `__pairs` ã®ãƒ¡ã‚¿ãƒ¡ã‚½ãƒƒãƒ‰ãŒã‚ã‚‹å ´åˆã€ãれを `t` ã§å‘¼ã³å‡ºã•れãŸå ´åˆã®æˆ»ã‚Šå€¤ã‚’è¿”ã™ã€‚
+ãれ以外ã®å ´åˆã€ä¸‰ã¤ã®å€¤ï¼ˆã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿é–¢æ•°ã€ãƒ†ãƒ¼ãƒ–ル `t` ã€ãã—㦠`nil`)を返ã™ã€‚三ã¤ã®å€¤ã¯æ¬¡ã®æ§‹æ–‡
+```lua
+ for k,v in pairs(t) do body end
+```
+ã«ãŠã„㦠`k,v` ㌠`t` 内ã®ãれãžã‚Œã®ã‚ーã¨å€¤ã¨ãªã‚‹ã‚ˆã†ã«è¨å®šã•れる。
+
+走査ä¸ã«ãƒ†ãƒ¼ãƒ–ルを変更ã™ã‚‹ãƒªã‚¹ã‚¯ã«ã¤ã„ã¦ã¯ã€$next ã®èª¬æ˜Žã‚’å‚照。
+]]
+
+pcall =
+[[
+'ä¿è·ãƒ¢ãƒ¼ãƒ‰ã§é–¢æ•° `f` を指定ã•れãŸå¼•æ•°ã§å‘¼ã³å‡ºã™ã€‚
+ä¿è·ãƒ¢ãƒ¼ãƒ‰ã§ã¯ã€å®Ÿè¡Œä¸ã«ç™ºç”Ÿã—ãŸã‚¨ãƒ©ãƒ¼ãŒã‚ャッãƒã•れã€çŠ¶æ…‹ã‚³ãƒ¼ãƒ‰ã¨ã—ã¦è¿”ã•れる。
+`pcall`ã®æœ€åˆã®æˆ»ã‚Šå€¤ã¯çŠ¶æ…‹ã‚³ãƒ¼ãƒ‰ã‚’è¡¨ã™ãƒ–ール値。エラーãªã関数ã®å®Ÿè¡Œã«æˆåŠŸã—ãŸå ´åˆã€çŠ¶æ…‹ã‚³ãƒ¼ãƒ‰ã¯ `true` ã§ãã®å¾Œã«ã™ã¹ã¦ã®å‘¼ã³å‡ºã—çµæžœã‚’è¿”ã™ã€‚エラーãŒç™ºç”Ÿã—ãŸå ´åˆã€çŠ¶æ…‹ã‚³ãƒ¼ãƒ‰ã¯ `false` ã§ãã®å¾Œã«ã‚¨ãƒ©ãƒ¼ã‚ªãƒ–ジェクトãŒè¿”戻ã•れる。
+]]
+
+print =
+[[
+ä»»æ„æ•°ã®å¼•æ•°ã‚’å—ã‘å–りã€ãれらを文å—列ã«å¤‰æ›ã—ãŸå¾Œ `stdout` ã«å‡ºåŠ›ã™ã‚‹ã€‚æ–‡å—列ã¸ã®å¤‰æ›ã¯ $tostring ã¨åŒæ§˜ãªæ‰‹é †ã§è¡Œã‚れる。
+デãƒãƒƒã‚°ãªã©ã«ç½®ã‘る簡易的ãªå€¤ã®ç¢ºèªã‚’主ãªç”¨é€”ã¨ã—ã¦ã„ã‚‹ãŸã‚ã€å¼•æ•°ã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒ†ã‚£ãƒ³ã‚°ã¯æŒ‡å®šã§ããªã„。出力文å—列ã®ã‚ˆã‚Šç´°ã‹ãªåˆ¶å¾¡ã‚’行ã„ãŸã„å ´åˆã«ã¯ $string.format ã‹ $io.write ã‚’ã”利用ãã ã•ã„。
+]]
+
+rawequal =
+'`v1` ㌠`v2` ã¨ç‰ã—ã„ã‹ã©ã†ã‹ã‚’確èªã™ã‚‹ã€‚メタメソッド `__eq` ãŒå®šç¾©ã•れã¦ã„ã¦ã‚‚ã€ãれを無視ã™ã‚‹ã€‚'
+
+rawget =
+'`table[index]` ã®å€¤ã‚’å–å¾—ã™ã‚‹ã€‚メタメソッド `__index` ãŒå®šç¾©ã•れã¦ã„ã¦ã‚‚ã€ãれを無視ã™ã‚‹ã€‚'
+
+rawlen =
+'オブジェクト `v` ã®é•·ã•ã‚’å–å¾—ã™ã‚‹ã€‚メタメソッド `__len` ãŒå®šç¾©ã•れã¦ã„ã¦ã‚‚ã€ãれを無視ã™ã‚‹ã€‚'
+
+rawset =
+[[
+`table[index]` ã‚’ `value` ã«è¨å®šã—ã€`table` ã‚’è¿”ã™ã€‚メタメソッド `__newindex` ãŒå®šç¾©ã•れã¦ã„ã¦ã‚‚ã€ãれを無視ã™ã‚‹ã€‚
+`table`ã¯ãƒ†ãƒ¼ãƒ–ル型ã€`index` 㯠`nil` 㨠`NaN` 以外ã®å€¤ã§ã‚ã‚‹å¿…è¦ãŒã‚る。
+]]
+
+select =
+[[
+`index` ãŒæ•°å—ã®å ´åˆã€`select` ã«æŒ‡å®šã•れ㟠`index` 番目以é™ã®å¼•æ•°ã™ã¹ã¦è¿”ã™ã€‚`index` ãŒè² ã®æ•°å€¤ã®å ´åˆã«ã¯ã€æœ€å¾Œã®å¼•æ•°ã‹ã‚‰æ•°ãˆã‚‰ã‚Œã‚‹ï¼ˆä¾‹ãˆã°ã€`-1` ã¯æœ€å¾Œã®å¼•数を指ã™ï¼‰ã€‚
+ãれ以外ã®å ´åˆã€`index` ã¯æ–‡å—列 `"#"` ã§ã‚ã‚‹å¿…è¦ãŒã‚りã€`index` 以é™ã®å…¨å¼•æ•°ã®æ•°ã‚’è¿”ã™ã€‚
+]]
+
+setfenv =
+'指定ã•れãŸé–¢æ•°ã«ä½¿ç”¨ã•れる環境をè¨å®šã™ã‚‹ã€‚'
+
+setmetatable =
+[[
+指定ã•れãŸãƒ†ãƒ¼ãƒ–ルã®ãƒ¡ã‚¿ãƒ†ãƒ¼ãƒ–ルをè¨å®šã—ã€ãƒ†ãƒ¼ãƒ–ルを返ã™ã€‚`metatable` ㌠`nil` ã®å ´åˆã€æŒ‡å®šã•れãŸãƒ†ãƒ¼ãƒ–ルã®ãƒ¡ã‚¿ãƒ†ãƒ¼ãƒ–ルを除去ã™ã‚‹ã€‚å…ƒã®ãƒ¡ã‚¿ãƒ†ãƒ¼ãƒ–ル㫠`__metatable` フィールドãŒã‚ã‚‹å ´åˆã€ã‚¨ãƒ©ãƒ¼ã‚’発生ã•ã›ã‚‹ã€‚
+
+テーブル以外ã®ã‚ªãƒ–ジェクトã®ãƒ¡ã‚¿ãƒ†ãƒ¼ãƒ–ルを変更ã™ã‚‹ã«ã¯ã€`debug` ライブラリを利用ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ (§6.10)。
+]]
+
+tonumber =
+[[
+`base`ãŒæŒ‡å®šã•れã¦ã„ãªã„å ´åˆã€å¼•数を数値ã«å¤‰æ›ã—よã†ã¨ã™ã‚‹ã€‚引数ãŒã™ã§ã«æ•°å€¤ã‹ã€æ•°å€¤ã«å¤‰æ›å¯èƒ½ãªæ–‡å—列ã§ã‚れã°ã€ãã®æ•°å€¤ã‚’è¿”ã™ã€‚ãれ以外ã®å ´åˆã¯ `fail` ã‚’è¿”ã™ã€‚
+
+æ–‡å—列ã‹ã‚‰ã®å¤‰æ›ã®éš›ã€çµæžœã¯æ•´æ•°ã€ã¾ãŸã¯æµ®å‹•å°æ•°ç‚¹æ•°ã«ãªã‚‹å¯èƒ½æ€§ãŒã‚る(§3.1å‚照)。変æ›å‰ã®æ–‡å—列ã¯å…ˆé ã¨æœ«å°¾ã«ã‚¹ãƒšãƒ¼ã‚¹ã‚„ã€ç¬¦å·ã‚’å«ã‚€ã“ã¨ãŒã§ãる。
+]]
+
+tostring =
+[[
+ä»»æ„ã®å€¤ã‚’å¯èªãªæ–‡å—列ã«å¤‰æ›ã™ã‚‹ã€‚
+
+`v` ã®ãƒ¡ã‚¿ãƒ†ãƒ¼ãƒ–ル㫠`__tostring` フィールドãŒã‚ã‚‹å ´åˆã€ãã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã«æ ¼ç´ã•れã¦ã„る関数を引数 `v` ã§å‘¼ã³å‡ºã—ã€ãã®çµæžœã‚’è¿”ã™ã€‚ãれ以外ã®å ´åˆã€`v` ã®ãƒ¡ã‚¿ãƒ†ãƒ¼ãƒ–ル㫠`__name` ã¨ã„ã†ãƒ•ィールドãŒã‚りã€ãã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã«æ–‡å—åˆ—ãŒæ ¼ç´ã•れã¦ã„ã‚‹å ´åˆã€ãã®æ–‡å—列ãŒçµæžœã«åˆ©ç”¨ã•れるå¯èƒ½æ€§ãŒã‚る。
+
+数値ã®å¤‰æ›ã‚’制御ã™ã‚‹ã«ã¯ã€$string.format を使用ã™ã‚‹ã€‚
+]]
+
+type =
+[[
+引数ã®åž‹ã‚’æ–‡å—列ã¨ã—ã¦è¿”ã™ã€‚å¯èƒ½ãªæˆ»ã‚Šå€¤ã¯`"nil"`, `"number"`, `"string"`, `"boolean"`, `"table"`, `"function"`, `"thread"`, 㨠`"userdata"`.
+]]
+
+_VERSION =
+'実行ä¸ã®Luaãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’è¡¨ã™æ–‡å—åˆ—ã‚’ä¿æŒã™ã‚‹ã‚°ãƒãƒ¼ãƒãƒ«å¤‰æ•°ï¼ˆé–¢æ•°ã§ã¯ãªã„)。'
+
+warn =
+'è¦å‘Šã‚’発ã™ã‚‹ã€‚è¦å‘Šã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯ `warn` é–¢æ•°ã«æ¸¡ã•れãŸã™ã¹ã¦ã®å¼•æ•°ã‚’çµåˆã—ãŸæ–‡å—列。`warn` ã«æ¸¡ã•れるã™ã¹ã¦ã®å¼•æ•°ãŒæ–‡å—列ã§ã‚ã‚‹å¿…è¦ãŒã‚る。'
+
+xpcall['=5.1'] =
+'æ–°è¦ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãƒãƒ³ãƒ‰ãƒ© `err` ã‚’è¨å®šã—ãŸä¸Šã§ã€é–¢æ•° `f` を指定ã•れãŸå¼•æ•°ã§ä¿è·ãƒ¢ãƒ¼ãƒ‰ã§å®Ÿè¡Œã™ã‚‹ã€‚'
+xpcall['>5.2'] =
+'æ–°è¦ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãƒãƒ³ãƒ‰ãƒ© `msgh` ã‚’è¨å®šã—ãŸä¸Šã§ã€é–¢æ•° `f` を指定ã•れãŸå¼•æ•°ã§ä¿è·ãƒ¢ãƒ¼ãƒ‰ã§å®Ÿè¡Œã™ã‚‹ã€‚'
+
+unpack =
+[[
+`list`ã®å„è¦ç´ ã‚’è¿”ã™ã€‚ã“ã®é–¢æ•°ã¯ä¸‹è¨˜æ–‡ã¨åŒç‰ã«æ©Ÿèƒ½ã™ã‚‹ã€‚
+```lua
+ return list[i], list[i+1], ···, list[j]
+```
+]]
+
+bit32 =
+''
+bit32.arshift =
+[[
+数値 `x` ã‚’ `disp` ビットã ã‘å³ã«ã‚·ãƒ•トã—ãŸå€¤ã‚’è¿”ã™ã€‚`disp` ãŒè² ã®å ´åˆã€å·¦ã«ã‚·ãƒ•トã™ã‚‹ã€‚
+
+シフトæ“作ä¸ã€å·¦ã«ç©ºã„ãŸãƒ“ット㯠`x` ã®æœ€ä¸Šä½ãƒ“ットã®ã‚³ãƒ”ーã§åŸ‹ã‚られã€å³ã«ç©ºã„ãŸãƒ“ットã¯ã‚¼ãƒã§åŸ‹ã‚られるライブラリ (arithmetic shift)。
+]]
+bit32.band =
+'オペランドã®ãƒ“ットå˜ä½ANDã‚’è¿”ã™ã€‚'
+bit32.bnot =
+[[
+`x`ã®ãƒ“ットå˜ä½NOTã‚’è¿”ã™ã€‚
+
+```lua
+assert(bit32.bnot(x) ==
+(-1 - x) % 2^32)
+```
+]]
+bit32.bor =
+'オペランドã®ãƒ“ットå˜ä½ORã‚’è¿”ã™ã€‚'
+bit32.btest =
+'オペランドã®ãƒ“ットå˜ä½ANDãŒã‚¼ãƒã¨ç•°ãªã‚‹ã‹ã©ã†ã‹ã®ãƒ–ール値を返ã™ã€‚'
+bit32.bxor =
+'オペランドã®ãƒ“ットå˜ä½XORã‚’è¿”ã™ã€‚'
+bit32.extract =
+'数値 `n` ã®ãƒ“ット `field` ã‹ã‚‰`field + width - 1`を符å·ãªã—æ•´æ•°ã¨ã—ã¦è¿”ã™ã€‚'
+bit32.replace =
+'数値 `n` ã®ãƒ“ット `field` ã‹ã‚‰ `field + width - 1` ã‚’ `v` ã§ç½®ãæ›ãˆãŸæ•°å€¤ã‚’è¿”ã™ã€‚'
+bit32.lrotate =
+'数値 `x` ã‚’ `disp` ビットã ã‘å·¦ã«å›žè»¢ã—ãŸå€¤ã‚’è¿”ã™ã€‚`disp` ãŒè² ã®å ´åˆã€å³ã«å›žè»¢ã™ã‚‹ã€‚'
+bit32.lshift =
+[[
+数値 `x` ã‚’ `disp` ビットã ã‘å·¦ã«ã‚·ãƒ•トã—ãŸå€¤ã‚’è¿”ã™ã€‚`disp` ãŒè² ã®å ´åˆã€å³ã«ã‚·ãƒ•トã™ã‚‹ã€‚ã‚·ãƒ•ãƒˆã®æ–¹å‘ã«é–¢ã‚らãšã€ç©ºã„ãŸãƒ“ットã¯ã‚¼ãƒã§åŸ‹ã‚られる。
+
+```lua
+assert(bit32.lshift(b, disp) ==
+(b * 2^disp) % 2^32)
+```
+]]
+bit32.rrotate =
+'数値 `x` ã‚’ `disp` ビットã ã‘å³ã«å›žè»¢ã—ãŸå€¤ã‚’è¿”ã™ã€‚`disp` ãŒè² ã®å ´åˆã€å·¦ã«å›žè»¢ã™ã‚‹ã€‚'
+bit32.rshift =
+[[
+数値 `x` ã‚’ `disp` ビットã ã‘å³ã«ã‚·ãƒ•トã—ãŸå€¤ã‚’è¿”ã™ã€‚`disp` ãŒè² ã®å ´åˆã€å·¦ã«ã‚·ãƒ•トã™ã‚‹ã€‚ã‚·ãƒ•ãƒˆã®æ–¹å‘ã«é–¢ã‚らãšã€ç©ºã„ãŸãƒ“ットã¯ã‚¼ãƒã§åŸ‹ã‚られる。
+
+```lua
+assert(bit32.rshift(b, disp) ==
+math.floor(b % 2^32 / 2^disp))
+```
+]]
+
+coroutine =
+''
+coroutine.create =
+'`f` ã‚’ãƒœãƒ‡ã‚£ã«æŒã¤æ–°ã—ã„コルーãƒãƒ³ã‚’作æˆã—ã€ãれを返ã™ã€‚`f` ã¯é–¢æ•°ã§ã‚ã‚‹å¿…è¦ãŒã‚る。返ã•れるオブジェクトã®åž‹ã¯ "thread" ã§ã‚る。'
+coroutine.isyieldable =
+'実行ä¸ã®ã‚³ãƒ«ãƒ¼ãƒãƒ³ãŒyieldã§ãã‚‹ã‹ã©ã†ã‹ã‚’è¿”ã™ã€‚'
+coroutine.isyieldable['>5.4']=
+'コルーãƒãƒ³ `co` ãŒyieldã§ãã‚‹ã‹ã©ã†ã‹ã‚’è¿”ã™ã€‚`co` ãŒæŒ‡å®šã•れã¦ã„ãªã„å ´åˆã€å®Ÿè¡Œä¸ã®ã‚³ãƒ«ãƒ¼ãƒãƒ³ã«å¯¾ã—ã¦è©•価ã™ã‚‹ã€‚'
+coroutine.close =
+'コルーãƒãƒ³ `co` をクãƒãƒ¼ã‚ºã™ã‚‹: ä¿ç•™ä¸ã®å¤‰æ•°ã‚’ã™ã¹ã¦ã‚¯ãƒãƒ¼ã‚ºã—ã€`co` ã®çŠ¶æ…‹ã‚’ `dead` ã«ã™ã‚‹ã€‚'
+coroutine.resume =
+'コルーãƒãƒ³ `co` ã®å®Ÿè¡Œã‚’é–‹å§‹ã€ã‚ã‚‹ã„ã¯å†é–‹ã™ã‚‹ã€‚'
+coroutine.running =
+'実行ä¸ã®ã‚³ãƒ«ãƒ¼ãƒãƒ³ã¨ã€å®Ÿè¡Œä¸ã®ã‚³ãƒ«ãƒ¼ãƒãƒ³ãŒãƒ¡ã‚¤ãƒ³ã®ã‚³ãƒ«ãƒ¼ãƒãƒ³ã§ã‚ã‚‹ã‹ã©ã†ã‹ã®ãƒ–ール値を返ã™ã€‚'
+coroutine.status =
+'コルーãƒãƒ³ `co` ã®çжæ³ã‚’è¡¨ã™æ–‡å—列を返ã™ã€‚'
+coroutine.wrap =
+'`f` ã‚’ãƒœãƒ‡ã‚£ã«æŒã¤æ–°ã—ã„コルーãƒãƒ³ã‚’作æˆã—ã€å‘¼ã³å‡ºã•れる度ã«ãã®ã‚³ãƒ«ãƒ¼ãƒãƒ³ã‚’å†é–‹ã™ã‚‹é–¢æ•°ã‚’è¿”ã™ã€‚`f` ã¯é–¢æ•°ã§ã‚ã‚‹å¿…è¦ãŒã‚る。'
+coroutine.yield =
+'実行ä¸ã®ã‚³ãƒ«ãƒ¼ãƒãƒ³ã‚’ä¸€æ™‚åœæ¢ã™ã‚‹ã€‚'
+
+costatus.running =
+'実行ä¸ã€‚'
+costatus.suspended =
+'ä¸€æ™‚åœæ¢ã€ã¾ãŸã¯é–‹å§‹ã•れã¦ã„ãªã„。'
+costatus.normal =
+'有効ã‹ã•れã¦ã„ã‚‹ãŒã€å®Ÿè¡Œã•れã¦ã„ãªã„。'
+costatus.dead =
+'実行ãŒçµ‚了ã—ãŸã‹ã€ã‚¨ãƒ©ãƒ¼ã«ã‚ˆã£ã¦ä¸æ–ã•れãŸã€‚'
+
+debug =
+''
+debug.debug =
+'ãƒ¦ãƒ¼ã‚¶ãƒ¼å…¥åŠ›ã‚’é †æ¬¡ã«å®Ÿè¡Œã™ã‚‹ã‚¤ãƒ³ã‚¿ãƒ©ã‚¯ãƒ†ã‚£ãƒ–モードã«å…¥ã‚‹ã€‚contを入力ã™ã‚‹ã¨ã‚¤ãƒ³ã‚¿ãƒ©ã‚¯ãƒ†ã‚£ãƒ–モードã®å®Ÿè¡ŒãŒä¸æ–ã•れる。'
+debug.getfenv =
+'オブジェクト `o` ã®ç’°å¢ƒã‚’è¿”ã™ã€‚'
+debug.gethook =
+'スレッドã®ç¾åœ¨ã®ãƒ•ックè¨å®šã‚’è¿”ã™ã€‚ç¾åœ¨ã®ãƒ•ック関数ã€ç¾åœ¨ã®ãƒ•ックマスクã€ç¾åœ¨ã®ãƒ•ックカウントã®3ã¤ã®å€¤ãŒè¿”ã•れる。'
+debug.getinfo =
+'関数ã«é–¢ã™ã‚‹æƒ…å ±ã‚’æŒã¤ãƒ†ãƒ¼ãƒ–ルを返ã™ã€‚'
+debug.getlocal['<5.1'] =
+'スタックã®ãƒ¬ãƒ™ãƒ« `level` ã«ã‚る関数ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãŒ `local` ã®ãƒãƒ¼ã‚«ãƒ«å¤‰æ•°ã«å¯¾ã—ã¦ã€ãã®åå‰ã¨å€¤ã‚’è¿”ã™ã€‚'
+debug.getlocal['>5.2'] =
+'スタックã®ãƒ¬ãƒ™ãƒ« `f` ã«ã‚る関数ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãŒ `local` ã®ãƒãƒ¼ã‚«ãƒ«å¤‰æ•°ã«å¯¾ã—ã¦ã€ãã®åå‰ã¨å€¤ã‚’è¿”ã™ã€‚'
+debug.getmetatable =
+'指定ã•れãŸå€¤ã®ãƒ¡ã‚¿ãƒ†ãƒ¼ãƒ–ルを返ã™ã€‚'
+debug.getregistry =
+'レジストリテーブルを返ã™ã€‚'
+debug.getupvalue =
+'関数 `f` ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãŒ `up` ã®ã‚¢ãƒƒãƒ—ãƒãƒªãƒ¥ãƒ¼ã«å¯¾ã—ã¦ã€ãã®åå‰ã¨å€¤ã‚’è¿”ã™ã€‚'
+debug.getuservalue['<5.3'] =
+'`u` ã«é–¢é€£ä»˜ã‘られãŸå€¤ã‚’è¿”ã™ã€‚'
+debug.getuservalue['>5.4'] =
+'ユーザデータ `u` ã«é–¢é€£ä»˜ã‘られãŸç¬¬ `n` ã®ãƒ¦ãƒ¼ã‚¶å€¤ã¨ã€ãƒ¦ãƒ¼ã‚¶ãƒ‡ãƒ¼ã‚¿ãŒãã®å€¤ã‚’æŒã£ã¦ã„ã‚‹ã‹ã©ã†ã‹ã®ãƒ–ール値を返ã™ã€‚'
+debug.setcstacklimit =
+[[
+### **Deprecated in `Lua 5.4.2`**
+
+Cã‚¹ã‚¿ãƒƒã‚¯ã®æ–°ã—ã„閾値をè¨å®šã—ã€å¤ã„閾値を返ã™ã€‚è¨å®šã«ã—ã£ã°ã„ã—ãŸå ´åˆã€`false` ã‚’è¿”ã™ã€‚
+閾値をè¨å®šã™ã‚‹ã“ã¨ã§Luaã«ãŠã‘る呼ã³å‡ºã—æ·±ã•を制é™ã—ã€ã‚¹ã‚¿ãƒƒã‚¯ã‚ªãƒ¼ãƒãƒ¼ãƒ•ãƒãƒ¼ã‚’防ãã“ã¨ãŒã§ãる。
+]]
+debug.setfenv =
+'指定ã•れ㟠`object` ã®ç’°å¢ƒã‚’ `table` ã«è¨å®šã™ã‚‹ã€‚'
+debug.sethook =
+'指定ã•れãŸé–¢æ•°ã‚’フックã¨ã—ã¦è¨å®šã™ã‚‹ã€‚'
+debug.setlocal =
+'スタックレベル `level` ã«ã‚る関数ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ `local` ã«ã‚ã‚‹ãƒãƒ¼ã‚«ãƒ«å¤‰æ•°ã« `value` を割り当ã¦ã‚‹ã€‚'
+debug.setmetatable =
+'指定ã•れãŸå€¤ã®ãƒ¡ã‚¿ãƒ†ãƒ¼ãƒ–ルを `table` ã«è¨å®šã™ã‚‹ï¼ˆ`table` 㯠`nil` ã§ã‚ã£ã¦ã‚‚よã„)。'
+debug.setupvalue =
+'インデックス `up` ã®ã‚¢ãƒƒãƒ—ãƒãƒªãƒ¥ãƒ¼ã« `value` を割り当ã¦ã‚‹ã€‚'
+debug.setuservalue['<5.3'] =
+'`value` ã‚’ `udata` ã«é–¢é€£ä»˜ã‘られãŸå€¤ã¨ã—ã¦è¨å®šã™ã‚‹ã€‚'
+debug.setuservalue['>5.4'] =
+'`value` ã‚’ `udata` ã®ç¬¬ `n` ã®é–¢é€£å€¤ã¨ã—ã¦è¨å®šã™ã‚‹ã€‚'
+debug.traceback =
+'コールスタックã®ãƒˆãƒ¬ãƒ¼ã‚¹æƒ…å ±ã‚’è¡¨ã™æ–‡å—列を返ã™ã€‚`message` ãŒæŒ‡å®šã•れãŸå ´åˆã€ãƒˆãƒ¬ãƒ¼ã‚¹æƒ…å ±ã®å…ˆé ã«è¿½åŠ ã•れる。'
+debug.upvalueid =
+'指定ã•れãŸé–¢æ•°ã®ç¬¬ `n` ã®ã‚¢ãƒƒãƒ—ãƒãƒªãƒ¥ãƒ¼ã‚’一æ„çš„ã«ç‰¹å®šã§ãる軽é‡ãƒ¦ãƒ¼ã‚¶ãƒ‡ãƒ¼ã‚¿ã‚’è¿”ã™ã€‚'
+debug.upvaluejoin =
+'クãƒãƒ¼ã‚¸ãƒ£ `f1` ã®ç¬¬ `n1` アップãƒãƒªãƒ¥ãƒ¼ã‚’ã€ã‚¯ãƒãƒ¼ã‚¸ãƒ£ `f2` ã®ç¬¬ `n2` アップãƒãƒªãƒ¥ãƒ¼ã®å‚ç…§ã«ç½®ãæ›ãˆã‚‹ã€‚'
+
+infowhat.n =
+'`name` 㨠`namewhat`'
+infowhat.S =
+'`source`, `short_src`, `linedefined`, `lastlinedefined`, 㨠`what` '
+infowhat.l =
+'`currentline`'
+infowhat.t =
+'`istailcall`'
+infowhat.u['<5.1'] =
+'`nups`'
+infowhat.u['>5.2'] =
+'`nups`, `nparams`, 㨠`isvararg`'
+infowhat.f =
+'`func`'
+infowhat.r =
+'`ftransfer` 㨠`ntransfer`'
+infowhat.L =
+'`activelines`'
+
+hookmask.c =
+'Lua ãŒé–¢æ•°ã‚’呼ã³å‡ºã™ãŸã³ã«ãƒ•ックを呼ã³å‡ºã™ã€‚'
+hookmask.r =
+'Lua ãŒé–¢æ•°ã‹ã‚‰æˆ»ã‚‹ãŸã³ã«ãƒ•ックを呼ã³å‡ºã™ã€‚'
+hookmask.l =
+'Lua ãŒæ–°ã—ã„行ã®å®Ÿè¡Œã‚’é–‹å§‹ã™ã‚‹ãŸã³ã«ãƒ•ックを呼ã³å‡ºã™ã€‚'
+
+file =
+''
+file[':close'] =
+'ファイルをクãƒãƒ¼ã‚ºã™ã‚‹ã€‚'
+file[':flush'] =
+'書ãè¾¼ã¾ã‚ŒãŸãƒ‡ãƒ¼ã‚¿ã‚’ `file` ã«ä¿å˜ã™ã‚‹ã€‚'
+file[':lines'] =
+[[
+------
+```lua
+for c in file:lines(...) do
+ body
+end
+```
+]]
+file[':read'] =
+'指定ã•れãŸãƒ•ォーマットã«å¾“ã„ `file` ã‚’èªã¿å–る。'
+file[':seek'] =
+'ファイルã®å…ˆé ã‹ã‚‰ã®ä½ç½®ã‚’è¨å®šã€ã‚ã‚‹ã„ã¯å–å¾—ã™ã‚‹ã€‚'
+file[':setvbuf'] =
+'出力ファイルã®ãƒãƒƒãƒ•ァリングモードをè¨å®šã™ã‚‹ã€‚'
+file[':write'] =
+'渡ã•れãŸå¼•æ•°ã‚’ã™ã¹ã¦ `file` ã«æ›¸ã込む。'
+
+readmode.n =
+'数値をèªã¿å–りã€Lua ã®å¤‰æ›è¦å‰‡ã«å¾“ã„æµ®å‹•å°æ•°ç‚¹æ•°ã¾ãŸã¯æ•´æ•°ã‚’è¿”ã™ã€‚'
+readmode.a =
+'ç¾åœ¨ã®ä½ç½®ã‹ã‚‰ãƒ•ァイル全体をèªã¿å–る。'
+readmode.l =
+'次ã®è¡Œã‚’èªã¿å–る。改行コードã¯å‡ºåŠ›ã‹ã‚‰é™¤å¤–ã•れる。'
+readmode.L =
+'次ã®è¡Œã‚’èªã¿å–る。改行コードã¯å‡ºåŠ›ã«å«ã¾ã‚Œã‚‹ã€‚'
+
+seekwhence.set =
+'基準点ã¯ãƒ•ァイル先é 。'
+seekwhence.cur =
+'基準点ã¯ç¾åœ¨ä½ç½®ã€‚'
+seekwhence['.end'] =
+'基準点ã¯ãƒ•ァイル末尾。'
+
+vbuf.no =
+'ãƒãƒƒãƒ•ァリングã›ãšã«ã€ç›´ã¡ã«å‡ºåŠ›ã™ã‚‹ã€‚'
+vbuf.full =
+'ãƒãƒƒãƒ•ã‚¡ãŒã„ã£ã±ã„ã«ãªã‚‹ã‹ã€`flush` ãŒå‘¼ã³å‡ºã•れるã¾ã§å‡ºåŠ›ã•れãªã„。'
+vbuf.line =
+'改行時ã«å‡ºåŠ›ã™ã‚‹ã€‚'
+
+io =
+''
+io.stdin =
+'標準入力'
+io.stdout =
+'標準出力'
+io.stderr =
+'標準エラー'
+io.close =
+'`file` ã¾ãŸã¯ãƒ‡ãƒ•ォルトã®å‡ºåŠ›ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ã‚¯ãƒãƒ¼ã‚ºã™ã‚‹ã€‚'
+io.flush =
+'書ãè¾¼ã¾ã‚ŒãŸãƒ‡ãƒ¼ã‚¿ã‚’デフォルトã®å‡ºåŠ›ãƒ•ã‚¡ã‚¤ãƒ«ã«ä¿å˜ã™ã‚‹ã€‚'
+io.input =
+'`file` をデフォルトã®å…¥åŠ›ãƒ•ã‚¡ã‚¤ãƒ«ã¨ã—ã¦è¨å®šã™ã‚‹ã€‚'
+io.lines =
+[[
+------
+```lua
+for c in io.lines(filename, ...) do
+ body
+end
+```
+]]
+io.open =
+'`mode` ã§æŒ‡å®šã•れãŸå½¢å¼ã§ãƒ•ァイルを開ã。'
+io.output =
+'`file` をデフォルトã®å‡ºåŠ›ãƒ•ã‚¡ã‚¤ãƒ«ã¨ã—ã¦è¨å®šã™ã‚‹ã€‚'
+io.popen =
+'プãƒã‚°ãƒ©ãƒ `prog` をサブプãƒã‚»ã‚¹ã¨ã—ã¦èµ·å‹•ã™ã‚‹ã€‚'
+io.read =
+'指定ã•れãŸãƒ•ォーマットã«å¾“ã„ `file` ã‚’èªã¿å–る。'
+io.tmpfile =
+'æˆåŠŸã—ãŸå ´åˆã€æ–°è¦ã®ãƒ†ãƒ³ãƒãƒ©ãƒªãƒ•ァイルã¸ã®ãƒãƒ³ãƒ‰ãƒ«ã‚’è¿”ã™ã€‚'
+io.type =
+'`obj` ãŒæœ‰åйãªãƒ•ァイルãƒãƒ³ãƒ‰ãƒ«ã§ã‚ã‚‹ã‹ã©ã†ã‹ã‚’確èªã™ã‚‹ã€‚'
+io.write =
+'渡ã•れãŸå¼•æ•°ã‚’ã™ã¹ã¦ãƒ‡ãƒ•ォルトã®å‡ºåŠ›ãƒ•ã‚¡ã‚¤ãƒ«ã«æ›¸ã込む。'
+
+openmode.r =
+'èªã¿å–りモード。'
+openmode.w =
+'書ãè¾¼ã¿ãƒ¢ãƒ¼ãƒ‰ã€‚'
+openmode.a =
+'è¿½åŠ ãƒ¢ãƒ¼ãƒ‰ã€‚'
+openmode['.r+'] =
+'èªã¿å–り更新モード。既å˜ã®ãƒ‡ãƒ¼ã‚¿ã¯ã™ã¹ã¦ä¿æŒã•れã€ãƒ•ァイルã¸ã®æ›¸ãè¾¼ã¿ã‚‚å¯èƒ½ã€‚'
+openmode['.w+'] =
+'書ãè¾¼ã¿æ›´æ–°ãƒ¢ãƒ¼ãƒ‰ã€‚æ—¢å˜ã®ãƒ‡ãƒ¼ã‚¿ã¯ã™ã¹ã¦å‰Šé™¤ã•れã€ãƒ•ァイルã‹ã‚‰ã®èªã¿å–りもå¯èƒ½ã€‚'
+openmode['.a+'] =
+'è¿½åŠ æ›´æ–°ãƒ¢ãƒ¼ãƒ‰ã€‚æ—¢å˜ã®ãƒ‡ãƒ¼ã‚¿ã¯ã™ã¹ã¦ä¿æŒã•れã€ãƒ•ã‚¡ã‚¤ãƒ«ã®æœ«å°¾ã§ã®ã¿æ›¸ãè¾¼ã¿ãŒå¯èƒ½ã€‚'
+openmode.rb =
+'ãƒã‚¤ãƒŠãƒªèªã¿å–りモード。'
+openmode.wb =
+'ãƒã‚¤ãƒŠãƒªæ›¸ãè¾¼ã¿ãƒ¢ãƒ¼ãƒ‰ã€‚'
+openmode.ab =
+'ãƒã‚¤ãƒŠãƒªè¿½åŠ ãƒ¢ãƒ¼ãƒ‰ã€‚'
+openmode['.r+b'] =
+'ãƒã‚¤ãƒŠãƒªèªã¿å–り更新モード。既å˜ã®ãƒ‡ãƒ¼ã‚¿ã¯ã™ã¹ã¦ä¿æŒã•れã€ãƒ•ァイルã¸ã®æ›¸ãè¾¼ã¿ã‚‚å¯èƒ½ã€‚'
+openmode['.w+b'] =
+'ãƒã‚¤ãƒŠãƒªæ›¸ãè¾¼ã¿æ›´æ–°ãƒ¢ãƒ¼ãƒ‰ã€‚æ—¢å˜ã®ãƒ‡ãƒ¼ã‚¿ã¯ã™ã¹ã¦å‰Šé™¤ã•れã€ãƒ•ァイルã‹ã‚‰ã®èªã¿å–りもå¯èƒ½ã€‚'
+openmode['.a+b'] =
+'ãƒã‚¤ãƒŠãƒªè¿½åŠ æ›´æ–°ãƒ¢ãƒ¼ãƒ‰ã€‚æ—¢å˜ã®ãƒ‡ãƒ¼ã‚¿ã¯ã™ã¹ã¦ä¿æŒã•れã€ãƒ•ã‚¡ã‚¤ãƒ«ã®æœ«å°¾ã§ã®ã¿æ›¸ãè¾¼ã¿ãŒå¯èƒ½ã€‚'
+
+popenmode.r =
+'ã“ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’èªã¿å–る。(ãƒã‚¤ãƒŠãƒªãƒ¢ãƒ¼ãƒ‰ï¼‰'
+popenmode.w =
+'ã“ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã«ãƒ‡ãƒ¼ã‚¿ã‚’書ã込む。(ãƒã‚¤ãƒŠãƒªãƒ¢ãƒ¼ãƒ‰ï¼‰'
+
+filetype.file =
+'é–‹ã„ã¦ã„るファイルã¸ã®ãƒãƒ³ãƒ‰ãƒ«ã€‚'
+filetype['.closed file'] =
+'クãƒãƒ¼ã‚ºã•れã¦ã„るファイルã¸ã®ãƒãƒ³ãƒ‰ãƒ«ã€‚'
+filetype['.nil'] =
+'ファイルãƒãƒ³ãƒ‰ãƒ«ã§ã¯ãªã„。'
+
+math =
+''
+math.abs =
+'`x` ã®çµ¶å¯¾å€¤ã‚’è¿”ã™ã€‚'
+math.acos =
+'`x` ã®é€†ä½™å¼¦ã‚’ラジアンå˜ä½ã§è¿”ã™ã€‚'
+math.asin =
+'`x` ã®é€†æ£å¼¦ã‚’ラジアンå˜ä½ã§è¿”ã™ã€‚'
+math.atan['<5.2'] =
+'`x` ã®é€†æ£æŽ¥ã‚’ラジアンå˜ä½ã§è¿”ã™ã€‚'
+math.atan['>5.3'] =
+'`y/x`ã®é€†æ£æŽ¥ã‚’ラジアンå˜ä½ã§è¿”ã™ã€‚'
+math.atan2 =
+'`y/x`ã®é€†æ£æŽ¥ã‚’ラジアンå˜ä½ã§è¿”ã™ã€‚'
+math.ceil =
+'`x` ä»¥ä¸Šã®æœ€å°ã®æ•´æ•°å€¤ã‚’è¿”ã™ã€‚'
+math.cos =
+'`x` ã®ä½™å¼¦ã‚’è¿”ã™ã€‚`x` ã¯ãƒ©ã‚¸ã‚¢ãƒ³å˜ä½ã§ã‚ã‚‹å¿…è¦ãŒã‚る。'
+math.cosh =
+'`x` ã®åŒæ›²ç·šä½™å¼¦ã‚’è¿”ã™ã€‚`x` ã¯ãƒ©ã‚¸ã‚¢ãƒ³å˜ä½ã§ã‚ã‚‹å¿…è¦ãŒã‚る。'
+math.deg =
+'角度 `x` をラジアンã‹ã‚‰åº¦ã«å¤‰æ›ã™ã‚‹ã€‚'
+math.exp =
+'`e^x`ã®å€¤ã‚’è¿”ã™ï¼ˆe ã¯è‡ªç„¶å¯¾æ•°ã®åº•)。'
+math.floor =
+'`x` ä»¥ä¸‹ã®æœ€å¤§ã®æ•´æ•°å€¤ã‚’è¿”ã™ã€‚'
+math.fmod =
+'`x` ã‚’ `y` ã§å‰²ã£ãŸä½™ã‚Šã‚’è¿”ã™ã€‚'
+math.frexp =
+'`x` ã‚’ä»®æ•°ã¨æŒ‡æ•°ã«åˆ†è§£ã—ã€`x = m * (2 ^ e)` ã¨ãªã‚‹ã‚ˆã†ãª `m` 㨠`e` ã‚’è¿”ã™ã€‚`e` ã¯æ•´æ•°ã§ã€`m` ã®çµ¶å¯¾å€¤ã¯ [0.5, 1) ã®ç¯„囲内ã«ã‚る。ãŸã ã—ã€`x` ãŒ0ã®å ´åˆã«ã¯ `m` ã‚‚0ã¨ãªã‚‹ã€‚'
+math.huge =
+'ä»»æ„ã®æ•°å€¤ã‚ˆã‚Šã‚‚大ãã„æµ®å‹•å°æ•°ç‚¹æ•°ã€‚'
+math.ldexp =
+'`m * (2 ^ e)`ã®å€¤ã‚’è¿”ã™ã€‚'
+math.log['<5.1'] =
+'`x` ã®è‡ªç„¶å¯¾æ•°ã‚’è¿”ã™ã€‚'
+math.log['>5.2'] =
+'指定ã•れãŸåº•ã§ã® `x` ã®å¯¾æ•°ã‚’è¿”ã™ã€‚'
+math.log10 =
+'10を底ã¨ã—㟠`x` ã®å¯¾æ•°ã‚’è¿”ã™ã€‚'
+math.max =
+'引数ã®ä¸ã§æœ€ã‚‚大ãã„値を返ã™ã€‚比較ã¯Luaã®`<`演算åã«ã‚ˆã£ã¦è¡Œã‚れる。'
+math.maxinteger['>5.3'] =
+'最大整数値。'
+math.min =
+'引数ã®ä¸ã§æœ€ã‚‚å°ã•ã„値を返ã™ã€‚比較ã¯Luaã®`<`演算åã«ã‚ˆã£ã¦è¡Œã‚れる。'
+math.mininteger['>5.3'] =
+'æœ€å°æ•´æ•°å€¤ã€‚'
+math.modf =
+'`x` ã®æ•´æ•°éƒ¨åˆ†ã¨å°æ•°éƒ¨åˆ†ã‚’è¿”ã™ã€‚'
+math.pi =
+'*Ï€*ã®å€¤ã€‚'
+math.pow =
+'`x ^ y`ã®å€¤ã‚’è¿”ã™ã€‚'
+math.rad =
+'角度 `x` を度ã‹ã‚‰ãƒ©ã‚¸ã‚¢ãƒ³ã«å¤‰æ›ã™ã‚‹ã€‚'
+math.random =
+[[
+* `math.random()`: [0,1) åŒºé–“å†…ã®æµ®å‹•å°æ•°ç‚¹ã‚’è¿”ã™ã€‚
+* `math.random(n)`: [1, n] åŒºé–“å†…ã®æ•´æ•°ã‚’è¿”ã™ã€‚
+* `math.random(m, n)`: [m, n] åŒºé–“å†…ã®æ•´æ•°ã‚’è¿”ã™ã€‚
+]]
+math.randomseed['<5.3'] =
+'擬似乱数生æˆå™¨ã®ã‚·ãƒ¼ãƒ‰ã‚’ `x` ã¨ã—ã¦è¨å®šã™ã‚‹ã€‚'
+math.randomseed['>5.4'] =
+[[
+* `math.randomseed(x, y)`: `x` 㨠`y` ã‚’128ãƒ“ãƒƒãƒˆã®æ•°å€¤ã«çµåˆã—ã€ãれを乱数生æˆå™¨ã®ã‚·ãƒ¼ãƒ‰ã¨ã—ã¦è¨å®šã™ã‚‹ã€‚
+* `math.randomseed(x)`: `math.randomseed(x, 0)` ã¨åŒç‰ã€‚
+* `math.randomseed()`: ã‚る程度ランダム性ã®ã‚る数値を乱数生æˆå™¨ã®ã‚·ãƒ¼ãƒ‰ã¨ã—ã¦è¨å®šã™ã‚‹ã€‚
+]]
+math.sin =
+'`x` ã®æ£å¼¦ã‚’è¿”ã™ã€‚`x` ã¯ãƒ©ã‚¸ã‚¢ãƒ³å˜ä½ã§ã‚ã‚‹å¿…è¦ãŒã‚る。'
+math.sinh =
+'`x` ã®åŒæ›²ç·šæ£å¼¦ã‚’è¿”ã™ã€‚`x` ã¯ãƒ©ã‚¸ã‚¢ãƒ³å˜ä½ã§ã‚ã‚‹å¿…è¦ãŒã‚る。'
+math.sqrt =
+'`x` ã®å¹³æ–¹æ ¹ã‚’è¿”ã™ã€‚'
+math.tan =
+'`x` ã®æ£æŽ¥ã‚’è¿”ã™ã€‚`x` ã¯ãƒ©ã‚¸ã‚¢ãƒ³å˜ä½ã§ã‚ã‚‹å¿…è¦ãŒã‚る。'
+math.tanh =
+'`x` ã®åŒæ›²ç·šæ£æŽ¥ã‚’è¿”ã™ã€‚`x` ã¯ãƒ©ã‚¸ã‚¢ãƒ³å˜ä½ã§ã‚ã‚‹å¿…è¦ãŒã‚る。'
+math.tointeger['>5.3'] =
+'`x` ãŒæ•´æ•°ã«å¤‰æ›å¯èƒ½ã§ã‚れã°ã€ãã®æ•´æ•°ã‚’è¿”ã™ã€‚'
+math.type['>5.3'] =
+'`x` ãŒæ•´æ•°ã§ã‚れã°`"integer"`ã€æµ®å‹•å°æ•°ç‚¹æ•°ã§ã‚れ㰠`"float"`ã€æ•°å—ã§ãªã‘れ㰠`nil` ã‚’è¿”ã™ã€‚'
+math.ult['>5.3'] =
+'æ•´æ•° `m` 㨠`n` を符å·ãªã—æ•´æ•°ã¨ã—ã¦æ¯”較ã—ã€`m` ㌠`n` よりå°ã•ã„å ´åˆã« `true` ã‚’è¿”ã™ã€‚'
+
+os =
+''
+os.clock =
+'プãƒã‚°ãƒ©ãƒ ãŒä½¿ç”¨ã—ãŸCPUæ™‚é–“ã®æ¦‚算値を秒å˜ä½ã§è¿”ã™ã€‚'
+os.date =
+'指定ã•れ㟠`format` ã«å¾“ã„ã€æ—¥ä»˜ã¨æ™‚刻をå«ã‚€æ–‡å—列ã¾ãŸã¯ãƒ†ãƒ¼ãƒ–ルを返ã™ã€‚'
+os.difftime =
+'`t1` 㨠`t2` ã®æ™‚刻差を秒å˜ä½ã§è¿”ã™ã€‚'
+os.execute =
+'`command` をシステムインタプリタã§å®Ÿè¡Œã™ã‚‹ã€‚'
+os.exit['<5.1'] =
+'C言語㮠`exit` 関数を呼ã³å‡ºã—ホストプãƒã‚°ãƒ©ãƒ を終了ã•ã›ã‚‹ã€‚'
+os.exit['>5.2'] =
+'ISO Cã® `exit` 関数を呼ã³å‡ºã—ホストプãƒã‚°ãƒ©ãƒ を終了ã•ã›ã‚‹ã€‚'
+os.getenv =
+'環境変数 `varname` ã®å€¤ã‚’è¿”ã™ã€‚'
+os.remove =
+'指定ã•れãŸåå‰ã®ãƒ•ァイルを削除ã™ã‚‹ã€‚'
+os.rename =
+'ファイルã¾ãŸã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®åå‰ã‚’変更ã™ã‚‹ã€‚'
+os.setlocale =
+'プãƒã‚°ãƒ©ãƒ ã®ãƒã‚±ãƒ¼ãƒ«ã‚’è¨å®šã™ã‚‹ã€‚'
+os.time =
+'引数ãŒãªã„å ´åˆã€ç¾åœ¨ã®æ™‚刻を返ã™ã€‚ãƒ†ãƒ¼ãƒ–ãƒ«ãŒæ¸¡ã•れるã¨ã€ãã®ãƒ†ãƒ¼ãƒ–ルãŒè¡¨ã™æ™‚刻を返ã™ã€‚'
+os.tmpname =
+'テンãƒãƒ©ãƒªãƒ•ァイルã«ä½¿ç”¨ã§ãるファイルåã‚’è¿”ã™ã€‚'
+
+osdate.year =
+'年(4æ¡ï¼‰'
+osdate.month =
+'月(1-12)'
+osdate.day =
+'日(1-31)'
+osdate.hour =
+'時間(0-23)'
+osdate.min =
+'分(0-59)'
+osdate.sec =
+'秒(0-61)'
+osdate.wday =
+'曜日(1-7ã®æ•°å—ã§ã€1ãŒæ—¥æ›œæ—¥ï¼‰'
+osdate.yday =
+'ãã®å¹´ã®å…ƒæ—¥ã‹ã‚‰ã®æ—¥æ•°ï¼ˆ1-366)'
+osdate.isdst =
+'夿™‚間(日光節約時間)を表ã™ãƒ–ール値'
+
+package =
+''
+
+require['<5.3'] =
+'モジュールをèªã¿è¾¼ã¿ã€ãã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®æˆ»ã‚Šå€¤ã‚’è¿”ã™ã€‚ãŸã ã—ã€ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®æˆ»ã‚Šå€¤ãŒ `nil` ã®å ´åˆã€`true` ã‚’è¿”ã™ã€‚'
+require['>5.4'] =
+'モジュールをèªã¿è¾¼ã¿ã€ãã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®æˆ»ã‚Šå€¤ã‚’è¿”ã™ï¼ˆãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®æˆ»ã‚Šå€¤ãŒ `nil` ã®å ´åˆã€`true` ã‚’è¿”ã™ï¼‰ã€‚ç¬¬äºŒã®æˆ»ã‚Šå€¤ã¨ã—ã¦ã€èªã¿è¾¼ã¾ã‚ŒãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®æŽ¢ç´¢çµæžœã‚’返㙠(ファイルã®å ´åˆã«ã¯ãƒ•ァイルパス)。'
+
+package.config =
+'パッケージ管ç†ã«é–¢é€£ã—ãŸã‚³ãƒ³ãƒ‘イル時è¨å®šã‚’è¡¨ã™æ–‡å—列。'
+package.cpath =
+'`require` ãŒCãƒãƒ¼ãƒ€ãƒ¼ã§æ¤œç´¢ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ãƒ‘ス。'
+package.loaded =
+'`require` ãŒåˆ©ç”¨ã™ã‚‹ãƒ†ãƒ¼ãƒ–ルã®ä¸€ã¤ã€‚特定ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒæ—¢ã«èªã¿è¾¼ã¾ã‚ŒãŸã‹ã©ã†ã‹ã®ç¢ºèªã«ç”¨ã„られる。'
+package.loaders =
+'`require` ãŒåˆ©ç”¨ã™ã‚‹ãƒ†ãƒ¼ãƒ–ルã®ä¸€ã¤ã€‚モジュールãŒã©ã®ã‚ˆã†ã«ãƒãƒ¼ãƒ‰ã•れるã‹ã‚’制御ã™ã‚‹ã®ã«ç”¨ã„られる。'
+package.loadlib =
+'Cライブラリ `libname` をホストプãƒã‚°ãƒ©ãƒ ã«å‹•的リンクã™ã‚‹ã€‚'
+package.path =
+'`require` ãŒåˆ©ç”¨ã™ã‚‹è¨å®šã®ä¸€ã¤ã€‚Luaãƒãƒ¼ãƒ€ãƒ¼ã®æ¤œç´¢ãƒ‘スを表ã™ã€‚'
+package.preload =
+'特定ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®èªã¿è¾¼ã¿ã«åˆ©ç”¨ã•れるãƒãƒ¼ãƒ€ãƒ¼ã‚’ä¿æŒã™ã‚‹ãƒ†ãƒ¼ãƒ–ル。'
+package.searchers =
+'`require` ãŒåˆ©ç”¨ã™ã‚‹ãƒ†ãƒ¼ãƒ–ルã®ä¸€ã¤ã€‚モジュールãŒã©ã®ã‚ˆã†ã«ãƒãƒ¼ãƒ‰ã•れるã‹ã‚’制御ã™ã‚‹ã®ã«ç”¨ã„られる。'
+package.searchpath =
+'指定ã•れ㟠`path` ã‹ã‚‰ `name` を検索ã™ã‚‹ã€‚'
+package.seeall =
+'指定ã•れãŸãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ãƒ¡ã‚¿ãƒ†ãƒ¼ãƒ–ルã«ã‚°ãƒãƒ¼ãƒãƒ«ç’°å¢ƒã‚’å‚ç…§ã—㟠`__index` ã‚’è¨å®šã™ã‚‹ã“ã¨ã§ã€ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å†…ã‹ã‚‰ã‚°ãƒãƒ¼ãƒãƒ«ç’°å¢ƒã®å€¤ã‚’アクセスã§ãるよã†ã«ã™ã‚‹ã€‚`module` é–¢æ•°ã«æ¸¡ã•れるè¨å®šã®ä¸€ã¤ã€‚'
+
+string =
+''
+string.byte =
+'æ–‡å—列 `s[i]`ã€`s[i+1]`ã€...ã€`s[j]` ã®æ–‡å—コードを返ã™ã€‚'
+string.char =
+'0å€‹ä»¥ä¸Šã®æ•´æ•°ã‚’å—ã‘å–りã€ãれãžã‚Œã‚’対応ã™ã‚‹æ–‡å—ã«å¤‰æ›ã—ã€ã“れらã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‚’連çµã—ãŸæ–‡å—列を返ã™ã€‚'
+string.dump =
+'指定ã—ãŸé–¢æ•°ã‚’ãƒã‚¤ãƒŠãƒªå½¢å¼ï¼ˆ*ãƒã‚¤ãƒŠãƒªã‚³ãƒ¼ãƒ‰ãƒ–ãƒãƒƒã‚¯*)ã§è¡¨ã—ãŸæ–‡å—列を返ã™ã€‚'
+string.find =
+'æ–‡å—列ã®ä¸ã‹ã‚‰ `pattern` ã«æœ€åˆã«ãƒžãƒƒãƒã—ãŸéƒ¨åˆ†ã‚’探ã™ï¼ˆÂ§6.4.1 ã‚’å‚照)。マッãƒã—ãŸã‚‚ã®ãŒè¦‹ã¤ã‹ã£ãŸå ´åˆã€ãƒžãƒƒãƒã—ãŸéƒ¨åˆ†ã®æœ€åˆã¨æœ€å¾Œã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚’è¿”ã™ã€‚見ã¤ã‹ã‚‰ãªã‹ã£ãŸå ´åˆã€`nil` ã‚’è¿”ã™ã€‚'
+string.format =
+'ç¬¬ä¸€å¼•æ•°ã§æŒ‡å®šã•れãŸãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã«æ²¿ã£ã¦ã€å¯å¤‰æ•°ã®å¼•æ•°ã‚’æˆå½¢ã—ãŸã‚‚ã®ã‚’è¿”ã™ã€‚'
+string.gmatch =
+[[
+呼ã³å‡ºã•ã‚Œã‚‹åº¦ã«æ–‡å—列 `s` ã‹ã‚‰ `pattern` ã«æ¬¡ã«ãƒžãƒƒãƒã—ãŸéƒ¨åˆ†ã‚’è¿”ã™ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿é–¢æ•°ã‚’è¿”ã™ï¼ˆÂ§6.4.1 ã‚’å‚照)。
+
+例ãˆã°ã€æ¬¡ã®ã‚³ãƒ¼ãƒ‰ã¯æ–‡å—列 `s` 内ã®ã™ã¹ã¦ã®å˜èªžã‚’å復処ç†ã—ã€å„å˜èªžã‚’一行ãšã¤å‡ºåŠ›ã™ã‚‹ï¼š
+```lua
+ s = "hello world from Lua"
+ for w in string.gmatch(s, "%a+") do
+ print(w)
+ end
+```
+]]
+string.gsub =
+'æ–‡å—列 `s` ã®ä¸ã® `pattern` ã«ãƒžãƒƒãƒã—ãŸéƒ¨åˆ†ã‚’ã™ã¹ã¦ `repl` ã«ç½®ãæ›ãˆãŸæ–‡å—列を返ã™ï¼ˆÂ§6.4.1 ã‚’å‚照)。`n` ãŒæŒ‡å®šã•れãŸå ´åˆã€æœ€åˆã«ãƒžãƒƒãƒã—㟠`n` 個ã®éƒ¨åˆ†ã®ã¿ã‚’ç½®ãæ›ãˆã‚‹ã€‚'
+string.len =
+'æ–‡å—列ã®é•·ã•ã‚’è¿”ã™ã€‚'
+string.lower =
+'æ–‡å—列内ã®ã™ã¹ã¦ã®å¤§æ–‡å—ã‚’å°æ–‡å—ã«å–りæ›ãˆãŸæ–‡å—列を返ã™ã€‚'
+string.match =
+'æ–‡å—列ã®ä¸ã‹ã‚‰ `pattern` ã«æœ€åˆã«ãƒžãƒƒãƒã—ãŸéƒ¨åˆ†ã‚’è¿”ã™ï¼ˆÂ§6.4.1 ã‚’å‚照)。マッãƒã—ãŸã‚‚ã®ãŒãªã„å ´åˆã€`nil` ã‚’è¿”ã™ã€‚'
+string.pack =
+'ç¬¬ä¸€å¼•æ•°ã§æŒ‡å®šã•れãŸãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã«æ²¿ã£ã¦ã€å¯å¤‰æ•°ã®å¼•æ•°ã‚’ãƒã‚¤ãƒŠãƒªæ–‡å—列ã«ã‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºã—ãŸã‚‚ã®ã‚’è¿”ã™ï¼ˆÂ§6.4.2 ã‚’å‚照)。'
+string.packsize =
+'指定ã•れãŸãƒ•ォーマットを用ã„ã¦`string.pack`ã«ã‚ˆã£ã¦ç”Ÿæˆã•ã‚ŒãŸæ–‡å—列ã®é•·ã•ã‚’è¿”ã™ã€‚フォーマット文å—列ã«ã¯å¯å¤‰é•·ã‚ªãƒ—ション `s` ã¾ãŸã¯ `z` ã‚’å«ã‚ã‚‹ã“ã¨ã¯ã§ããªã„(§6.4.2 ã‚’å‚照)。'
+string.rep['>5.2'] =
+'`n` å€‹ã®æ–‡å—列 `s` ã‚’æ–‡å—列 `sep` ã§åŒºåˆ‡ã£ã¦é€£çµã—ãŸæ–‡å—列を返ã™ã€‚デフォルト㮠`sep` ã¯ç©ºæ–‡å—列。`n` ãŒæ£æ•°ã§ãªã„å ´åˆã¯ç©ºæ–‡å—列を返ã™ã€‚'
+string.rep['<5.1'] =
+'`n` å€‹ã®æ–‡å—列 `s` を連çµã—ãŸæ–‡å—列を返ã™ã€‚`n` ãŒæ£æ•°ã§ãªã„å ´åˆã¯ç©ºæ–‡å—列を返ã™ã€‚'
+string.reverse =
+'æ–‡å—列 `s` ã‚’é€†é †ã§ä¸¦ã³å¤‰ãˆãŸæ–‡å—列を返ã™ã€‚'
+string.sub =
+'インデックス `i` ã§å§‹ã¾ã‚Šã€`j` ã¾ã§ç¶šã部分文å—列を返ã™ã€‚'
+string.unpack =
+'フォーマット `fmt` を用ã„ã¦`string.pack`ã«ã‚ˆã£ã¦ç”Ÿæˆã•ã‚ŒãŸæ–‡å—列ã®å…ƒã®å€¤ã‚’è¿”ã™ï¼ˆÂ§6.4.2 ã‚’å‚照)。'
+string.upper =
+'æ–‡å—列内ã®ã™ã¹ã¦ã®å°æ–‡å—を大文å—ã«å–りæ›ãˆãŸæ–‡å—列を返ã™ã€‚'
+
+table =
+''
+table.concat =
+'ã™ã¹ã¦ã®è¦ç´ ãŒæ–‡å—列ã¾ãŸã¯æ•°å€¤ã§ã‚るリストã«å¯¾ã—ã¦ã€`list[i]..sep..list[i+1] ··· sep..list[j]` ã¨ã„ã†æ–‡å—列を返ã™ã€‚'
+table.insert =
+'è¦ç´ `value` ã‚’ `list` ã®ä½ç½® `pos` ã«æŒ¿å…¥ã™ã‚‹ã€‚'
+table.maxn =
+'指定ã•れãŸãƒ†ãƒ¼ãƒ–ãƒ«ã®æœ€ã‚‚大ããªæ£ã®æ•°å€¤ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚’è¿”ã™ã€‚æ£ã®æ•°å€¤ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãŒãªã„å ´åˆã¯ã‚¼ãƒã‚’è¿”ã™ã€‚'
+table.move =
+[[
+テーブル `a1` ã‹ã‚‰ãƒ†ãƒ¼ãƒ–ル `a2` ã«è¦ç´ を移動ã™ã‚‹ã€‚
+```lua
+a2[t],··· =
+a1[f],···,a1[e]
+return a2
+```
+]]
+table.pack =
+'ã™ã¹ã¦ã®å¼•æ•°ã‚’ã‚ー `1`ã€`2` ãªã©ã«æ ¼ç´ã—ã€å¼•æ•°ã®ç·æ•°ã‚’示㙠`"n"` フィールドをæŒã¤ãƒ†ãƒ¼ãƒ–ルを返ã™ã€‚'
+table.remove =
+'`list` ã®ä½ç½® `pos` ã«ã‚ã‚‹è¦ç´ を削除ã—ã€å‰Šé™¤ã•れãŸè¦ç´ ã®å€¤ã‚’è¿”ã™ã€‚'
+table.sort =
+'リストã®è¦ç´ を指定ã•れãŸé †åºã§*内部*ソートã™ã‚‹ã€‚ソート㯠`list[1]` ã‹ã‚‰ `list[#list]` ã¾ã§è¡Œã‚れる。'
+table.unpack =
+[[
+指定ã•れãŸãƒªã‚¹ãƒˆã®è¦ç´ ã‚’è¿”ã™ã€‚ã“ã®é–¢æ•°ã¯æ¬¡ã¨åŒç‰ã§ã‚る(デフォルトã§ã¯ `i` ㌠`1` ã§ `j` ㌠`#list`)。
+```lua
+ return list[i], list[i+1], ···, list[j]
+```
+]]
+table.foreach =
+[[
+テーブル内ã®å„è¦ç´ ã«å¯¾ã— `f` ã‚’é©ç”¨ã™ã‚‹ã€‚`f` ã¯å„è¦ç´ ã®ã‚ーã¨å€¤ã‚’引数ã¨ã—ã¦å‘¼ã³å‡ºã•れる。`f` ㌠`nil` 以外ã®å€¤ã‚’è¿”ã™ã¨ãƒ«ãƒ¼ãƒ—ãŒçµ‚了ã—ã€ãã®å€¤ãŒ `foreach` ã®æœ€çµ‚çš„ãªæˆ»ã‚Šå€¤ã¨ã—ã¦è¿”ã•れる。
+éžæŽ¨è–¦é–¢æ•°ã®ãŸã‚ã€$pairs を優先ã—ã¦ãã ã•ã„。
+]]
+table.foreachi =
+[[
+ãƒ†ãƒ¼ãƒ–ãƒ«å†…ã®æ•°å€¤ã‚ーをæŒã¤è¦ç´ ã«å¯¾ã—㦠`f` ã‚’é©ç”¨ã™ã‚‹ã€‚`f` ã¯å„è¦ç´ ã®ã‚ーã¨å€¤ã‚’引数ã¨ã—ã¦å‘¼ã³å‡ºã•れる。`f` ㌠`nil` 以外ã®å€¤ã‚’è¿”ã™ã¨ãƒ«ãƒ¼ãƒ—ãŒçµ‚了ã—ã€ãã®å€¤ãŒ `foreach` ã®æœ€çµ‚çš„ãªæˆ»ã‚Šå€¤ã¨ã—ã¦è¿”ã•れる。
+éžæŽ¨è–¦é–¢æ•°ã®ãŸã‚ã€$ipairs を優先ã—ã¦ãã ã•ã„。
+]]
+table.getn =
+'テーブルã®é•·ã•ã‚’è¿”ã™ã€‚`#list` ã¨åŒç‰ã€‚'
+table.new = -- TODO: need translate!
+[[This creates a pre-sized table, just like the C API equivalent `lua_createtable()`. This is useful for big tables if the final table size is known and automatic table resizing is too expensive. `narray` parameter specifies the number of array-like items, and `nhash` parameter specifies the number of hash-like items. The function needs to be required before use.
+```lua
+ require("table.new")
+```
+]]
+table.clear = -- TODO: need translate!
+[[This clears all keys and values from a table, but preserves the allocated array/hash sizes. This is useful when a table, which is linked from multiple places, needs to be cleared and/or when recycling a table for use by the same context. This avoids managing backlinks, saves an allocation and the overhead of incremental array/hash part growth. The function needs to be required before use.
+```lua
+ require("table.clear").
+```
+Please note this function is meant for very specific situations. In most cases it's better to replace the (usually single) link with a new table and let the GC do its work.
+]]
+
+utf8 =
+''
+utf8.char =
+'0å€‹ä»¥ä¸Šã®æ•´æ•°ã‚’å—ã‘å–りã€ãれãžã‚Œã‚’対応ã™ã‚‹UTF-8æ–‡å—ã«å¤‰æ›ã—ã€ã“ã‚Œã‚‰ã®æ–‡å—を連çµã—ãŸæ–‡å—列を返ã™ã€‚'
+utf8.charpattern =
+'1ã¤ã®UTF-8æ–‡å—ã«ãƒžãƒƒãƒã™ã‚‹ãƒ‘ターンを返ã™ã€‚ã“ã®ãƒ‘ターンを用ã„ã‚‹éš›ã«ã¯ã€å¯¾è±¡ã®æ–‡å—åˆ—ãŒæœ‰åйãªUTF-8æ–‡å—列ã§ã‚ã‚‹å¿…è¦ãŒã‚る。'
+utf8.codes =
+[[
+æ¬¡ã®æ§‹æ–‡ã«ãŠã„ã¦`p`ãŒå„UTF-8æ–‡å—ã®ãƒã‚¤ãƒˆä½ç½®ã€`c`ãŒå„UTF-8æ–‡å—ã®æ–‡å—コードã¨ãªã‚‹ã‚ˆã†ãªå€¤ã‚’è¿”ã™ã€‚無効ãªãƒã‚¤ãƒˆã‚·ãƒ¼ã‚±ãƒ³ã‚¹ãŒæ–‡å—列ã«å«ã¾ã‚ŒãŸå ´åˆã«ã¯ã‚¨ãƒ©ãƒ¼ã‚’出ã™ã€‚
+```lua
+for p, c in utf8.codes(s) do
+ body
+end
+```
+]]
+utf8.codepoint =
+'ãƒã‚¤ãƒˆä½ç½® `i` ã‹ã‚‰ `j`(両方å«ã‚€ï¼‰ã®é–“ã«å«ã¾ã‚Œã‚‹ã™ã¹ã¦ã®UTF-8æ–‡å—コード(整数)を返ã™ã€‚'
+utf8.len =
+'ãƒã‚¤ãƒˆä½ç½® `i` ã‹ã‚‰ `j`(両方å«ã‚€ï¼‰ã®é–“ã«å«ã¾ã‚Œã‚‹UTF-8æ–‡å—ã®æ•°ã‚’è¿”ã™ã€‚'
+utf8.offset =
+'æ–‡å—列 `s` ã«ãŠã‘ã‚‹ `n` ç•ªç›®ã®æ–‡å—ãŒå§‹ã¾ã‚‹ãƒã‚¤ãƒˆä½ç½®ã‚’ã‚’è¿”ã™ã€‚`i` ãŒæŒ‡å®šã•れãŸå ´åˆã€`i` ã‹ã‚‰æ•°ãˆãŸãƒã‚¤ãƒˆä½ç½®ã‚’è¿”ã™ã€‚'
diff --git a/nvim/mason/packages/lua-language-server/libexec/locale/ja-jp/script.lua b/nvim/mason/packages/lua-language-server/libexec/locale/ja-jp/script.lua
new file mode 100644
index 0000000..12fb50f
--- /dev/null
+++ b/nvim/mason/packages/lua-language-server/libexec/locale/ja-jp/script.lua
@@ -0,0 +1,1314 @@
+DIAG_LINE_ONLY_SPACE =
+'行ã«ç©ºç™½æ–‡å—ã®ã¿ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚'
+DIAG_LINE_POST_SPACE =
+'行末ã«ä½™åˆ†ãªç©ºç™½æ–‡å—ãŒã‚りã¾ã™ã€‚'
+DIAG_UNUSED_LOCAL =
+'使用ã•れã¦ã„ãªã„ãƒãƒ¼ã‚«ãƒ«å¤‰æ•° `{}`'
+DIAG_UNDEF_GLOBAL =
+'ã‚°ãƒãƒ¼ãƒãƒ«å¤‰æ•° `{}` ã¯æœªå®šç¾©ã§ã™ã€‚'
+DIAG_UNDEF_FIELD =
+'プãƒãƒ‘ティ/フィールド `{}` ã¯æœªå®šç¾©ã§ã™ã€‚'
+DIAG_UNDEF_ENV_CHILD =
+'変数 `{}` ã¯æœªå®šç¾©ã§ã™ï¼ˆ`_ENV` オーãƒãƒ¼ãƒãƒ¼ãƒ‰ï¼‰ã€‚'
+DIAG_UNDEF_FENV_CHILD =
+'変数 `{}` ã¯æœªå®šç¾©ã§ã™ï¼ˆãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«å†…)。'
+DIAG_GLOBAL_IN_NIL_ENV =
+'ã‚°ãƒãƒ¼ãƒãƒ«å¤‰æ•°ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“(`_ENV` ㌠`nil` ã«è¨å®šã•れã¦ã„ã¾ã™ï¼‰ã€‚'
+DIAG_GLOBAL_IN_NIL_FENV =
+'ã‚°ãƒãƒ¼ãƒãƒ«å¤‰æ•°ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“(モジュール内ã®ç’°å¢ƒãŒ `nil` ã«è¨å®šã•れã¦ã„ã¾ã™ï¼‰ã€‚'
+DIAG_UNUSED_LABEL =
+'ラベル `{}` ã¯ä½¿ç”¨ã•れã¦ã„ã¾ã›ã‚“。'
+DIAG_UNUSED_FUNCTION =
+'使用ã•れã¦ã„ãªã„関数ã§ã™ã€‚'
+DIAG_UNUSED_VARARG =
+'使用ã•れã¦ã„ãªã„å¯å¤‰å¼•æ•°ã§ã™ã€‚'
+DIAG_REDEFINED_LOCAL =
+'ãƒãƒ¼ã‚«ãƒ«å¤‰æ•° `{}` ãŒå†å®šç¾©ã•れã¦ã„ã¾ã™ã€‚'
+DIAG_DUPLICATE_INDEX =
+'é‡è¤‡ã—ãŸã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ `{}` ãŒã‚りã¾ã™ã€‚'
+DIAG_DUPLICATE_METHOD =
+'é‡è¤‡ã—ãŸãƒ¡ã‚½ãƒƒãƒ‰ `{}` ãŒã‚りã¾ã™ã€‚'
+DIAG_PREVIOUS_CALL =
+'ã“れ㯠`{}{}` ã¨è§£é‡ˆã•れã¾ã™ã€‚`,` ã‚’è¿½åŠ ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。'
+DIAG_PREFIELD_CALL =
+'ã“れ㯠`{}{}` ã¨è§£é‡ˆã•れã¾ã™ã€‚`,` ã‹ `;` ã‚’è¿½åŠ ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。'
+DIAG_OVER_MAX_ARGS =
+'ã“ã®é–¢æ•°ã¯æœ€å¤§ã§ {:d} 個ã®å¼•æ•°ã‚’å—ã‘å–りã¾ã™ãŒã€{:d} 個ã®å¼•æ•°ãŒæ¸¡ã•れã¦ã„ã¾ã™ã€‚'
+DIAG_MISS_ARGS =
+'ã“ã®é–¢æ•°ã¯å°‘ãªãã¨ã‚‚ {:d} 個ã®å¼•æ•°ã‚’å¿…è¦ã¨ã—ã¾ã™ãŒã€{:d} 個ã—ã‹æ¸¡ã•れã¦ã„ã¾ã›ã‚“。'
+DIAG_UNNECESSARY_ASSERT =
+'ä¸è¦ãªã‚¢ã‚µãƒ¼ã‚·ãƒ§ãƒ³: ã“ã®å¼ã¯å¸¸ã«çœŸã§ã™ã€‚'
+DIAG_OVER_MAX_VALUES =
+'変数㯠{} 個ã—ã‹ã‚りã¾ã›ã‚“ãŒã€{} 個ã®å€¤ãŒè¨å®šã•れã¦ã„ã¾ã™ã€‚'
+DIAG_AMBIGUITY_1 =
+'`{}` ã¯å„ªå…ˆçš„ã«è©•価ã•れã¾ã™ã€‚æ‹¬å¼§ã‚’è¿½åŠ ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。'
+DIAG_LOWERCASE_GLOBAL =
+'å°æ–‡å—ã§å§‹ã¾ã‚‹ã‚°ãƒãƒ¼ãƒãƒ«å¤‰æ•°ã§ã™ã€‚`local` を忘れã¦ã„ã‚‹ã‹ã€ã‚¹ãƒšãƒ«ãƒŸã‚¹ãŒã‚ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚'
+DIAG_EMPTY_BLOCK =
+'空ã®ã‚³ãƒ¼ãƒ‰ãƒ–ãƒãƒƒã‚¯ã§ã™ã€‚'
+DIAG_DIAGNOSTICS =
+'Lua診æ–'
+DIAG_SYNTAX_CHECK =
+'Luaæ§‹æ–‡ãƒã‚§ãƒƒã‚¯'
+DIAG_NEED_VERSION =
+'ã“ã®æ©Ÿèƒ½ã¯ {} ã‹ã‚‰æœ‰åйã§ã™ã€‚ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¯ {} ã§ã™ã€‚'
+DIAG_DEFINED_VERSION =
+'ã“れ㯠{} ã§å®šç¾©ã•れã¦ã„ã¾ã™ãŒã€ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¯ {} ã§ã™ã€‚'
+DIAG_DEFINED_CUSTOM =
+'ã“れ㯠{} ã§å®šç¾©ã•れã¦ã„ã¾ã™ã€‚'
+DIAG_DUPLICATE_CLASS =
+'クラス `{}` ãŒé‡è¤‡ã—ã¦å®šç¾©ã•れã¦ã„ã¾ã™ã€‚'
+DIAG_UNDEFINED_CLASS =
+'クラス `{}` ã¯æœªå®šç¾©ã§ã™ã€‚。'
+DIAG_CYCLIC_EXTENDS =
+'循環的ãªç¶™æ‰¿ãŒç™ºç”Ÿã—ã¦ã„ã¾ã™ã€‚'
+DIAG_INEXISTENT_PARAM =
+'å˜åœ¨ã—ãªã„パラメータã§ã™ã€‚'
+DIAG_DUPLICATE_PARAM =
+'パラメータãŒé‡è¤‡ã—ã¦ã„ã¾ã™ã€‚'
+DIAG_NEED_CLASS =
+'クラスを先ã«å®šç¾©ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚'
+DIAG_DUPLICATE_SET_FIELD=
+'フィールド `{}` ãŒé‡è¤‡ã—ã¦å®šç¾©ã•れã¦ã„ã¾ã™ã€‚'
+DIAG_SET_CONST =
+'定数ã«å€¤ã‚’è¨å®šã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。'
+DIAG_SET_FOR_STATE =
+'ループ変数をè¨å®šã—ã¦ã„ã¾ã™ã€‚'
+DIAG_CODE_AFTER_BREAK =
+'`break` ã®å¾Œã®ã‚³ãƒ¼ãƒ‰ã¯å®Ÿè¡Œã•れã¾ã›ã‚“。'
+DIAG_UNBALANCED_ASSIGNMENTS =
+'å€¤ã®æ•°ãŒè¶³ã‚Šãªã„ãŸã‚ã€`nil` ãŒä»£å…¥ã•れã¾ã—ãŸã€‚Luaã§ã¯ `x, y = 1` 㯠`x, y = 1, nil` ã¨åŒç‰ã§ã™ã€‚'
+DIAG_REQUIRE_LIKE =
+'`{}` ã‚’ `require` ã¨ã—ã¦å–り扱ã†ã‚ˆã†ã«è¨å®šã§ãã¾ã™ã€‚'
+DIAG_COSE_NON_OBJECT =
+'ã“ã®ã‚¿ã‚¤ãƒ—ã®å€¤ã¯ã‚¯ãƒãƒ¼ã‚ºã§ãã¾ã›ã‚“。(`__close` メタメソッドをè¨å®šã—ãªã„é™ã‚Šï¼‰'
+DIAG_COUNT_DOWN_LOOP =
+'ã‚‚ã—ã‹ã—㦠`{}` ?'
+DIAG_UNKNOWN =
+'タイプを推測ã§ãã¾ã›ã‚“。'
+DIAG_DEPRECATED =
+'éžæŽ¨è–¦ã€‚'
+DIAG_DIFFERENT_REQUIRES =
+'åŒã˜ãƒ•ァイルãŒç•°ãªã‚‹åå‰ã§ require ã•れã¦ã„ã¾ã™ã€‚'
+DIAG_REDUNDANT_RETURN =
+'冗長㪠return ステートメントã§ã™ã€‚'
+DIAG_AWAIT_IN_SYNC =
+'éžåŒæœŸé–¢æ•°ã¯ã€éžåŒæœŸã¨ã—ã¦ãƒžãƒ¼ã‚¯ã•れãŸé–¢æ•°å†…ã§ã®ã¿å‘¼ã³å‡ºã™ã“ã¨ãŒã§ãã¾ã™ã€‚'
+DIAG_NOT_YIELDABLE =
+'ã“ã®é–¢æ•°ã®ç¬¬{}パラメータã¯è²æ¸¡å¯èƒ½ã¨ã—ã¦ãƒžãƒ¼ã‚¯ã•れã¦ã„ã¾ã›ã‚“ãŒã€éžåŒæœŸé–¢æ•°ãŒæ¸¡ã•れã¾ã—ãŸã€‚(`---@param name async fun()` を使用ã—ã¦è²æ¸¡å¯èƒ½ã¨ã—ã¦ãƒžãƒ¼ã‚¯ã—ã¦ãã ã•ã„)'
+DIAG_DISCARD_RETURNS =
+'ã“ã®é–¢æ•°ã®æˆ»ã‚Šå€¤ã¯ç ´æ£„ã§ãã¾ã›ã‚“。'
+DIAG_NEED_CHECK_NIL =
+'nil ãƒã‚§ãƒƒã‚¯ãŒå¿…è¦ã§ã™ã€‚'
+DIAG_CIRCLE_DOC_CLASS =
+'循環継承ã•れãŸã‚¯ãƒ©ã‚¹ã§ã™ã€‚'
+DIAG_DOC_FIELD_NO_CLASS =
+'フィールドã¯ã‚¯ãƒ©ã‚¹ã®å¾Œã«å®šç¾©ã—ãªã‘れã°ãªã‚Šã¾ã›ã‚“。'
+DIAG_DUPLICATE_DOC_ALIAS =
+'エイリアス `{}` ãŒé‡è¤‡ã—ã¦å®šç¾©ã•れã¦ã„ã¾ã™ã€‚'
+DIAG_DUPLICATE_DOC_FIELD =
+'フィールド `{}` ãŒé‡è¤‡ã—ã¦å®šç¾©ã•れã¦ã„ã¾ã™ã€‚'
+DIAG_DUPLICATE_DOC_PARAM =
+'パラメータ `{}` ãŒé‡è¤‡ã—ã¦æŒ‡ã•れã¦ã„ã¾ã™ã€‚'
+DIAG_UNDEFINED_DOC_CLASS =
+'クラス `{}` ã¯æœªå®šç¾©ã§ã™ã€‚'
+DIAG_UNDEFINED_DOC_NAME =
+'タイプã¾ãŸã¯ã‚¨ã‚¤ãƒªã‚¢ã‚¹ `{}` ã¯æœªå®šç¾©ã§ã™ã€‚'
+DIAG_UNDEFINED_DOC_PARAM =
+'パラメータ `{}` ã¯æœªå®šç¾©ã§ã™ã€‚'
+DIAG_MISSING_GLOBAL_DOC_COMMENT =
+'ã‚°ãƒãƒ¼ãƒãƒ«é–¢æ•° `{}` ã«æ³¨é‡ˆãŒã‚りã¾ã›ã‚“。'
+DIAG_MISSING_GLOBAL_DOC_PARAM =
+'ã‚°ãƒãƒ¼ãƒãƒ«é–¢æ•° `{2}` ã®ãƒ‘ラメータ `{1}` ã« @param 注釈ãŒã‚りã¾ã›ã‚“。'
+DIAG_MISSING_GLOBAL_DOC_RETURN =
+'ã‚°ãƒãƒ¼ãƒãƒ«é–¢æ•° `{2}` ã®ç¬¬ `{1}` ã®æˆ»ã‚Šå€¤ã« @return 注釈ãŒã‚りã¾ã›ã‚“。'
+DIAG_MISSING_LOCAL_EXPORT_DOC_COMMENT =
+'エクスãƒãƒ¼ãƒˆã•れãŸãƒãƒ¼ã‚«ãƒ«é–¢æ•° `{}` ã«æ³¨é‡ˆãŒã‚りã¾ã›ã‚“。'
+DIAG_MISSING_LOCAL_EXPORT_DOC_PARAM =
+'エクスãƒãƒ¼ãƒˆã•れãŸãƒãƒ¼ã‚«ãƒ«é–¢æ•° `{2}` ã®ãƒ‘ラメータ `{1}` ã« @param 注釈ãŒã‚りã¾ã›ã‚“。'
+DIAG_MISSING_LOCAL_EXPORT_DOC_RETURN =
+'エクスãƒãƒ¼ãƒˆã•れãŸãƒãƒ¼ã‚«ãƒ«é–¢æ•° `{2}` ã®ç¬¬ {1} ã®æˆ»ã‚Šå€¤ã« @return 注釈ãŒã‚りã¾ã›ã‚“。'
+DIAG_INCOMPLETE_SIGNATURE_DOC_PARAM =
+'ã‚·ã‚°ãƒãƒãƒ£ãŒä¸å®Œå…¨ã§ã™ã€‚パラメータ `{}` ã« @param 注釈ãŒã‚りã¾ã›ã‚“。'
+DIAG_INCOMPLETE_SIGNATURE_DOC_RETURN =
+'ã‚·ã‚°ãƒãƒãƒ£ãŒä¸å®Œå…¨ã§ã™ã€‚第 {} ã®æˆ»ã‚Šå€¤ã« @return 注釈ãŒã‚りã¾ã›ã‚“。'
+DIAG_UNKNOWN_DIAG_CODE =
+'診æ–コード `{}` ã¯ä¸æ˜Žã§ã™ã€‚'
+DIAG_CAST_LOCAL_TYPE =
+'変数㌠`{def}` åž‹ã¨ã—ã¦å®šç¾©ã•れã¦ã„ã‚‹ãŸã‚ã€`{ref}` åž‹ã«å¤‰æ›ã§ãã¾ã›ã‚“。'
+DIAG_CAST_FIELD_TYPE =
+'フィールド㌠`{def}` åž‹ã¨ã—ã¦å®šç¾©ã•れã¦ã„ã‚‹ãŸã‚ã€`{ref}` åž‹ã«å¤‰æ›ã§ãã¾ã›ã‚“。'
+DIAG_ASSIGN_TYPE_MISMATCH =
+'`{ref}` ã‚’ `{def}` ã«ä»£å…¥ã§ãã¾ã›ã‚“。'
+DIAG_PARAM_TYPE_MISMATCH =
+'`{ref}` をパラメータ `{def}` ã«ä»£å…¥ã§ãã¾ã›ã‚“。'
+DIAG_UNKNOWN_CAST_VARIABLE =
+'型変æ›å¤‰æ•° `{}` ã¯ä¸æ˜Žã§ã™ã€‚'
+DIAG_CAST_TYPE_MISMATCH =
+'`{def}` ã‚’ `{ref}` ã«å¤‰æ›ã§ãã¾ã›ã‚“。'
+DIAG_MISSING_RETURN_VALUE =
+'注釈ã«ã‚ˆã‚‹ã¨å°‘ãªãã¨ã‚‚ {min} å€‹ã®æˆ»ã‚Šå€¤ãŒå¿…è¦ã§ã™ãŒã€ã“ã“ã§ã¯ {rmax} 個ã—ã‹è¿”ã•れã¦ã„ã¾ã›ã‚“。'
+DIAG_MISSING_RETURN_VALUE_RANGE =
+'注釈ã«ã‚ˆã‚‹ã¨å°‘ãªãã¨ã‚‚ {min} å€‹ã®æˆ»ã‚Šå€¤ãŒå¿…è¦ã§ã™ãŒã€ã“ã“ã§ã¯ {rmin} ã‹ã‚‰ {rmax} 個ã—ã‹è¿”ã•れã¦ã„ã¾ã›ã‚“。'
+DIAG_REDUNDANT_RETURN_VALUE =
+'注釈ã«ã‚ˆã‚‹ã¨æœ€å¤§ {max} å€‹ã®æˆ»ã‚Šå€¤ã—ã‹è¿”ã›ã¾ã›ã‚“ãŒã€ã“ã“ã§ã¯ {rmax} å€‹ã®æˆ»ã‚Šå€¤ãŒè¿”ã•れã¦ã„ã¾ã™ã€‚'
+DIAG_REDUNDANT_RETURN_VALUE_RANGE =
+'注釈ã«ã‚ˆã‚‹ã¨æœ€å¤§ {max} å€‹ã®æˆ»ã‚Šå€¤ã—ã‹è¿”ã›ã¾ã›ã‚“ãŒã€ã“ã“ã§ã¯ {rmin} ã‹ã‚‰ {rmax} å€‹ã®æˆ»ã‚Šå€¤ãŒè¿”ã•れã¦ã„ã¾ã™ã€‚'
+DIAG_MISSING_RETURN =
+'注釈ã«ã‚ˆã‚‹ã¨æˆ»ã‚Šå€¤ã¯å¿…è¦ã§ã™ãŒã€`return` æ–‡ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。'
+DIAG_RETURN_TYPE_MISMATCH =
+'注釈ã«ã‚ˆã‚‹ã¨ç¬¬ {index} ã®æˆ»ã‚Šå€¤ã®åž‹ãŒ `{def}` ã§ã™ãŒã€å®Ÿéš›ã«ã¯ `{ref}` ãŒè¿”ã•れã¦ã„ã¾ã™ã€‚'
+DIAG_UNKNOWN_OPERATOR =
+'演算å `{}` ã¯ä¸æ˜Žã§ã™ã€‚'
+DIAG_UNREACHABLE_CODE =
+'到é”ä¸å¯èƒ½ãªã‚³ãƒ¼ãƒ‰ã§ã™ã€‚'
+DIAG_INVISIBLE_PRIVATE =
+'フィールド `{field}` 㯠private ã§ã‚りã€ã‚¯ãƒ©ã‚¹ `{class}` 内ã§ã®ã¿ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã€‚'
+DIAG_INVISIBLE_PROTECTED =
+'フィールド `{field}` 㯠private ã§ã‚りã€ã‚¯ãƒ©ã‚¹ `{class}` ãŠã‚ˆã³ãã®ã‚µãƒ–クラス内ã§ã®ã¿ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã€‚'
+DIAG_INVISIBLE_PACKAGE =
+'フィールド `{field}` ã¯åŒã˜ãƒ•ァイル `{uri}` 内ã§ã®ã¿ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã€‚'
+DIAG_GLOBAL_ELEMENT =
+'ã‚°ãƒãƒ¼ãƒãƒ«å¤‰æ•°ã€‚'
+DIAG_MISSING_FIELDS =
+'タイプ `{1}` ã«å¿…è¦ãªãƒ•ィールド {2} ãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+DIAG_INJECT_FIELD =
+'クラス `{class}` ã®å‚ç…§ã«ãƒ•ィールド `{field}` を注入ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。{fix}'
+DIAG_INJECT_FIELD_FIX_CLASS =
+'注入を許å¯ã™ã‚‹ã«ã¯ã€`{node}` ã« `{fix}` を使用ã—ã¦ãã ã•ã„。'
+DIAG_INJECT_FIELD_FIX_TABLE =
+'注入を許å¯ã™ã‚‹ã«ã¯ã€å®šç¾©ã« `{fix}` ã‚’è¿½åŠ ã—ã¦ãã ã•ã„。'
+
+MWS_NOT_SUPPORT =
+'ç¾åœ¨ {} ã¯ãƒžãƒ«ãƒãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“。新ã—ã„ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã‚’åæ˜ ã™ã‚‹ãŸã‚ã«ã¯å†èµ·å‹•ãŒå¿…è¦ã«ãªã‚‹å ´åˆãŒã‚りã¾ã™ã€‚'
+MWS_RESTART =
+'å†èµ·å‹•'
+MWS_NOT_COMPLETE =
+'ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã®æº–å‚™ãŒã¾ã 完了ã—ã¦ã„ã¾ã›ã‚“。暫ãã—ã¦ã‹ã‚‰ã‚‚ã†ä¸€åº¦ãŠè©¦ã—ãã ã•ã„。'
+MWS_COMPLETE =
+'ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã®æº–å‚™ãŒå®Œäº†ã—ã¾ã—ãŸã€‚å†åº¦ãŠè©¦ã—ã„ãŸã ã‘ã¾ã™ã€‚'
+MWS_MAX_PRELOAD =
+'プリãƒãƒ¼ãƒ‰ãƒ•ã‚¡ã‚¤ãƒ«ã®æ•°ãŒä¸Šé™ï¼ˆ{})ã«é”ã—ã¾ã—ãŸã€‚èªã¿è¾¼ã‚€å¿…è¦ã®ã‚るファイルを手動ã§é–‹ãå¿…è¦ãŒã‚りã¾ã™ã€‚'
+MWS_UCONFIG_FAILED =
+'ユーザーè¨å®šã®ä¿å˜ã«å¤±æ•—ã—ã¾ã—ãŸã€‚'
+MWS_UCONFIG_UPDATED =
+'ユーザーè¨å®šãŒæ›´æ–°ã•れã¾ã—ãŸã€‚'
+MWS_WCONFIG_UPDATED =
+'ワークスペースè¨å®šãŒæ›´æ–°ã•れã¾ã—ãŸã€‚'
+
+WORKSPACE_SKIP_LARGE_FILE =
+'ファイル {} ã®ã‚µã‚¤ã‚ºãŒ {} KB ã‚’è¶…ãˆã¦ã„ã‚‹ãŸã‚ã€è§£æžã‚’スã‚ップã—ã¾ã—ãŸã€‚ç¾åœ¨ã®ã‚µã‚¤ã‚ºã¯ {} KB ã§ã™ã€‚'
+WORKSPACE_LOADING =
+'ワークスペースをèªã¿è¾¼ã‚“ã§ã„ã¾ã™ã€‚'
+WORKSPACE_DIAGNOSTIC =
+'ワークスペースã®è¨ºæ–を実行ã—ã¦ã„ã¾ã™ã€‚'
+WORKSPACE_SKIP_HUGE_FILE =
+'パフォーマンスã®ãŸã‚ã€ãƒ•ァイル {} ã®è§£æžã‚’åœæ¢ã—ã¾ã—ãŸã€‚'
+WORKSPACE_NOT_ALLOWED =
+'ワークスペース㌠`{}` ã«è¨å®šã•れã¦ã„ã‚‹ãŸã‚ã€Lua言語サービスãŒã“ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®èªã¿è¾¼ã¿ã‚’æ‹’å¦ã—ã¾ã—ãŸã€‚è¨å®šã‚’確èªã—ã¦ãã ã•ã„。[詳細ã¯ã“ã¡ã‚‰](https://luals.github.io/wiki/faq#why-is-the-server-scanning-the-wrong-folder)'
+WORKSPACE_SCAN_TOO_MUCH =
+'{} 個以上ã®ãƒ•ァイルをスã‚ャンã—ã¾ã—ãŸã€‚ç¾åœ¨ã‚¹ã‚ャンã—ã¦ã„るディレクトリ㯠`{}` ã§ã™ã€‚ä¸è¦ãªãƒ•ァイルを除外ã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦ã¯ã€[FAQ](https://luals.github.io/wiki/faq#how-can-i-improve-startup-speeds) ã‚’å‚ç…§ã—ã¦ãã ã•ã„。ã¾ãŸã€[è¨å®šã«èª¤ã‚ŠãŒã‚ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™](https://luals.github.io/wiki/faq#why-is-the-server-scanning-the-wrong-folder)。'
+
+PARSER_CRASH =
+'構文解æžãŒã‚¯ãƒ©ãƒƒã‚·ãƒ¥ã—ã¾ã—ãŸï¼ 最後ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ï¼š{}'
+PARSER_UNKNOWN =
+'䏿˜Žãªæ§‹æ–‡ã‚¨ãƒ©ãƒ¼'
+PARSER_MISS_NAME =
+'åå‰ãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_UNKNOWN_SYMBOL =
+'シンボル `{symbol}` ã¯ä¸æ˜Žã§ã™ã€‚'
+PARSER_MISS_SYMBOL =
+'シンボル `{symbol}` ãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_MISS_ESC_X =
+'ãƒã‚¤ãƒˆæŒ‡å®š(`\\x`)ã«ã¯16é€²æ•°ã®æ–‡å—ãŒ2ã¤å¿…è¦ã§ã™ã€‚'
+PARSER_UTF8_SMALL =
+'Unicode 指定(`\\u`)ã«ã¯16é€²æ•°ã®æ–‡å—ãŒ1ã¤ä»¥ä¸Šå¿…è¦ã§ã™ã€‚'
+PARSER_UTF8_MAX =
+'Unicode 指定(`\\u`)㯠{min} ã‹ã‚‰ {max} æ–‡å—ã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚'
+PARSER_ERR_ESC =
+'無効ãªã‚¨ã‚¹ã‚±ãƒ¼ãƒ—シーケンス。'
+PARSER_MUST_X16 =
+'16é€²æ•°ã®æ–‡å—ã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚'
+PARSER_MISS_EXPONENT =
+'指数部ãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_MISS_EXP =
+'å¼ãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_MISS_FIELD =
+'フィールド/プãƒãƒ‘ティåãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_MISS_METHOD =
+'メソッドåãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_ARGS_AFTER_DOTS =
+'`...` ã¯æœ€å¾Œã®å¼•æ•°ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“。'
+PARSER_KEYWORD =
+'ã‚ーワードã¯åå‰ã¨ã—ã¦ä½¿ç”¨ã§ãã¾ã›ã‚“。'
+PARSER_EXP_IN_ACTION =
+'ã“ã®å¼ã¯æ–‡ã¨ã—ã¦ä½¿ç”¨ã§ãã¾ã›ã‚“。'
+PARSER_BREAK_OUTSIDE =
+'`break` ã¯ãƒ«ãƒ¼ãƒ—ã®å¤–ã§åˆ©ç”¨ã§ãã¾ã›ã‚“。'
+PARSER_MALFORMED_NUMBER =
+'ç„¡åŠ¹ãªæ•°å—ã§ã™ã€‚'
+PARSER_ACTION_AFTER_RETURN =
+'`return` ã®å¾Œã«ã‚³ãƒ¼ãƒ‰ã‚’実行ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。'
+PARSER_ACTION_AFTER_BREAK =
+'`break` ã®å¾Œã«ã‚³ãƒ¼ãƒ‰ã‚’実行ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。'
+PARSER_NO_VISIBLE_LABEL =
+'ラベル `{label}` ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。'
+PARSER_REDEFINE_LABEL =
+'ラベル `{label}` ã¯å®šç¾©æ¸ˆã¿ã§ã™ã€‚'
+PARSER_UNSUPPORT_SYMBOL =
+'{version} ã§ã¯ã“ã®ã‚·ãƒ³ãƒœãƒ«ã¯ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“。'
+PARSER_UNEXPECT_DOTS =
+'`...` ã¯å¯å¤‰å¼•数関数内ã§ã®ã¿ä½¿ç”¨ã§ãã¾ã™ã€‚'
+PARSER_UNEXPECT_SYMBOL =
+'シンボル `{symbol}` ã¯ä¸æ˜Žã§ã™ã€‚'
+PARSER_UNKNOWN_TAG =
+'䏿˜Žãªã‚¿ã‚°ã§ã™ã€‚'
+PARSER_MULTI_TAG =
+'ã‚¿ã‚°ã¯1ã¤ã®ã¿è¨å®šã§ãã¾ã™ã€‚'
+PARSER_UNEXPECT_LFUNC_NAME =
+'ãƒãƒ¼ã‚«ãƒ«é–¢æ•°ã®åå‰ã«ã¯è˜åˆ¥åã®ã¿ä½¿ç”¨ã§ãã¾ã™ã€‚'
+PARSER_UNEXPECT_EFUNC_NAME =
+'å¼ã¨ã—ã¦é–¢æ•°ã‚’利用ã™ã‚‹å ´åˆã€åå‰ã‚’付ã‘ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。'
+PARSER_ERR_LCOMMENT_END =
+'複数行ã®ã‚¢ãƒŽãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã¯ `{symbol}` ã§çµ‚ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚'
+PARSER_ERR_C_LONG_COMMENT =
+'Lua ã§ã¯è¤‡æ•°è¡Œã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’ `--[[ ]]` ã§å›²ã‚€å¿…è¦ãŒã‚りã¾ã™ã€‚'
+PARSER_ERR_LSTRING_END =
+'é•·ã„æ–‡å—列㯠`{symbol}` ã§çµ‚ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚'
+PARSER_ERR_ASSIGN_AS_EQ =
+'代入ã«ã¯ `=` を使用ã—ã¾ã™ã€‚'
+PARSER_ERR_EQ_AS_ASSIGN =
+'ç‰å·åˆ¤å®šã«ã¯ `==` を使用ã—ã¾ã™ã€‚'
+PARSER_ERR_UEQ =
+'ä¸ç‰å·åˆ¤å®šã«ã¯ `~=` を使用ã—ã¾ã™ã€‚'
+PARSER_ERR_THEN_AS_DO =
+'`then` を使用ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚'
+PARSER_ERR_DO_AS_THEN =
+'`do` を使用ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚'
+PARSER_MISS_END =
+'対応ã™ã‚‹ `end` ãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_ERR_COMMENT_PREFIX =
+'Lua ã§ã¯ã‚³ãƒ¡ãƒ³ãƒˆã« `--` を使用ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚'
+PARSER_MISS_SEP_IN_TABLE =
+'区切りã«ã¯ `,` ã¾ãŸã¯ `;` ãŒå¿…è¦ã§ã™ã€‚'
+PARSER_SET_CONST =
+'定数ã«å€¤ã‚’代入ã§ãã¾ã›ã‚“。'
+PARSER_UNICODE_NAME =
+'Unicode æ–‡å—ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚'
+PARSER_ERR_NONSTANDARD_SYMBOL =
+'Lua ã§ã¯ `{symbol}` 記å·ã‚’使用ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚'
+PARSER_MISS_SPACE_BETWEEN =
+'記å·ã®é–“ã«ã¯ã‚¹ãƒšãƒ¼ã‚¹ã‚’入れる必è¦ãŒã‚りã¾ã™ã€‚'
+PARSER_INDEX_IN_FUNC_NAME =
+'関数åã«ã¯ `[name]` å½¢å¼ã‚’使用ã§ãã¾ã›ã‚“。'
+PARSER_UNKNOWN_ATTRIBUTE =
+'ãƒãƒ¼ã‚«ãƒ«å¤‰æ•°ã®å±žæ€§ã¯ `const` ã¾ãŸã¯ `close` ã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚'
+PARSER_AMBIGUOUS_SYNTAX =
+'Lua 5.1 ã§ã¯ã€é–¢æ•°å‘¼ã³å‡ºã—ã®å·¦æ‹¬å¼§ã¯é–¢æ•°ã¨åŒã˜è¡Œã«ãªã‘れã°ãªã‚Šã¾ã›ã‚“。'
+PARSER_NEED_PAREN =
+'æ‹¬å¼§ã‚’è¿½åŠ ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚'
+PARSER_NESTING_LONG_MARK =
+'Lua 5.1 ã§ã¯ãƒã‚¹ãƒˆã•れ㟠`[[...]]` ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“。'
+PARSER_LOCAL_LIMIT =
+'åŒæ™‚ã«å˜åœ¨ã§ãã‚‹ãƒãƒ¼ã‚«ãƒ«å¤‰æ•°ã¨ã‚¢ãƒƒãƒ—ãƒãƒªãƒ¥ãƒ¼ã®æ•°ã¯200個ã¾ã§ã§ã™ã€‚'
+PARSER_LUADOC_MISS_CLASS_NAME =
+'クラスåãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_EXTENDS_SYMBOL =
+'`:` ãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_CLASS_EXTENDS_NAME =
+'継承ã™ã‚‹ã‚¯ãƒ©ã‚¹åãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_SYMBOL =
+'`{symbol}` ãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_ARG_NAME =
+'引数åãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_TYPE_NAME =
+'åž‹åãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_ALIAS_NAME =
+'エイリアスåãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_ALIAS_EXTENDS =
+'エイリアスã®å®šç¾©ãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_PARAM_NAME =
+'引数åãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_PARAM_EXTENDS =
+'引数ã®åž‹ãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_FIELD_NAME =
+'フィールドåãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_FIELD_EXTENDS =
+'フィールドã®åž‹ãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_GENERIC_NAME =
+'ジェãƒãƒªãƒƒã‚¯åãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_GENERIC_EXTENDS_NAME =
+'ジェãƒãƒªãƒƒã‚¯ãŒç¶™æ‰¿ã™ã‚‹ã‚¯ãƒ©ã‚¹åãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_VARARG_TYPE =
+'å¯å¤‰é•·å¼•æ•°ã®åž‹ãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_FUN_AFTER_OVERLOAD =
+'ã‚ーワード `fun` ãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_CATE_NAME =
+'アノテーションã®ç¨®é¡žãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_MISS_DIAG_MODE =
+'診æ–モードãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+PARSER_LUADOC_ERROR_DIAG_MODE =
+'診æ–ãƒ¢ãƒ¼ãƒ‰ãŒæ£ã—ãã‚りã¾ã›ã‚“。'
+PARSER_LUADOC_MISS_LOCAL_NAME =
+'変数åãŒä¸è¶³ã—ã¦ã„ã¾ã™ã€‚'
+
+SYMBOL_ANONYMOUS =
+'<匿å関数>'
+
+HOVER_VIEW_DOCUMENTS =
+'ドã‚ュメントを見る'
+HOVER_DOCUMENT_LUA51 =
+'http://www.lua.org/manual/5.1/manual.html#{}'
+HOVER_DOCUMENT_LUA52 =
+'http://www.lua.org/manual/5.2/manual.html#{}'
+HOVER_DOCUMENT_LUA53 =
+'http://www.lua.org/manual/5.3/manual.html#{}'
+HOVER_DOCUMENT_LUA54 =
+'http://www.lua.org/manual/5.4/manual.html#{}'
+HOVER_DOCUMENT_LUAJIT =
+'http://www.lua.org/manual/5.1/manual.html#{}'
+HOVER_NATIVE_DOCUMENT_LUA51 =
+'command:extension.lua.doc?["en-us/51/manual.html/{}"]'
+HOVER_NATIVE_DOCUMENT_LUA52 =
+'command:extension.lua.doc?["en-us/52/manual.html/{}"]'
+HOVER_NATIVE_DOCUMENT_LUA53 =
+'command:extension.lua.doc?["en-us/53/manual.html/{}"]'
+HOVER_NATIVE_DOCUMENT_LUA54 =
+'command:extension.lua.doc?["en-us/54/manual.html/{}"]'
+HOVER_NATIVE_DOCUMENT_LUAJIT =
+'command:extension.lua.doc?["en-us/51/manual.html/{}"]'
+HOVER_MULTI_PROTOTYPE =
+'({} 個ã®ãƒ—ãƒãƒˆã‚¿ã‚¤ãƒ—)'
+HOVER_STRING_BYTES =
+'{} ãƒã‚¤ãƒˆ'
+HOVER_STRING_CHARACTERS =
+'{} ãƒã‚¤ãƒˆã€{} æ–‡å—'
+HOVER_MULTI_DEF_PROTO =
+'({} 個ã®å®šç¾©ã€{} 個ã®ãƒ—ãƒãƒˆã‚¿ã‚¤ãƒ—)'
+HOVER_MULTI_PROTO_NOT_FUNC =
+'({} 個ã®éžé–¢æ•°å®šç¾©ï¼‰'
+HOVER_USE_LUA_PATH =
+'(検索パス: `{}`)'
+HOVER_EXTENDS =
+'{} ã«å±•é–‹'
+HOVER_TABLE_TIME_UP =
+'パフォーマンスã®ãŸã‚ã€ä¸€éƒ¨ã®åž‹æŽ¨è«–ãŒç„¡åйã«ãªã£ã¦ã„ã¾ã™ã€‚'
+HOVER_WS_LOADING =
+'ワークスペースをãƒãƒ¼ãƒ‰ä¸ï¼š{} / {}'
+HOVER_AWAIT_TOOLTIP =
+'éžåŒæœŸé–¢æ•°ã‚’呼ã³å‡ºã—ã¦ã„ã¾ã™ã€‚ç¾åœ¨ã®ã‚¹ãƒ¬ãƒƒãƒ‰ã¯è²ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚'
+
+ACTION_DISABLE_DIAG =
+'ワークスペース ({}) ã®è¨ºæ–を無効ã«ã—ã¾ã™ã€‚'
+ACTION_MARK_GLOBAL =
+'`{}` を定義済ã¿ã®ã‚°ãƒãƒ¼ãƒãƒ«å¤‰æ•°ã¨ã—ã¦ãƒžãƒ¼ã‚¯ã™ã‚‹ã€‚'
+ACTION_REMOVE_SPACE =
+'ã™ã¹ã¦ã®è¡Œæœ«ã‚¹ãƒšãƒ¼ã‚¹ã‚’削除ã—ã¾ã™'
+ACTION_ADD_SEMICOLON =
+'`;` ã‚’è¿½åŠ ã—ã¾ã™ã€‚'
+ACTION_ADD_BRACKETS =
+'æ‹¬å¼§ã‚’è¿½åŠ ã—ã¾ã™ã€‚'
+ACTION_RUNTIME_VERSION =
+'ランタイムãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’ {} ã«å¤‰æ›´ã—ã¾ã™ã€‚'
+ACTION_OPEN_LIBRARY =
+'{} ã‹ã‚‰ã‚°ãƒãƒ¼ãƒãƒ«å¤‰æ•°ã‚’ãƒãƒ¼ãƒ‰ã—ã¾ã™ã€‚'
+ACTION_ADD_DO_END =
+'`do ... end` ã‚’è¿½åŠ ã—ã¾ã™ã€‚'
+ACTION_FIX_LCOMMENT_END =
+'複数行コメントã®çµ‚了記å·ã‚’ä¿®æ£ã—ã¾ã™ã€‚'
+ACTION_ADD_LCOMMENT_END =
+'複数行コメントã®çµ‚了記å·ã‚’è¿½åŠ ã—ã¾ã™ã€‚'
+ACTION_FIX_C_LONG_COMMENT =
+'Lua ã®è¤‡æ•°è¡Œã‚³ãƒ¡ãƒ³ãƒˆå½¢å¼ã«å¤‰æ›´ã—ã¾ã™ã€‚'
+ACTION_FIX_LSTRING_END =
+'é•·ã„æ–‡å—列ã®çµ‚了記å·ã‚’ä¿®æ£ã—ã¾ã™ã€‚'
+ACTION_ADD_LSTRING_END =
+'é•·ã„æ–‡å—列ã®çµ‚了記å·ã‚’è¿½åŠ ã—ã¾ã™ã€‚'
+ACTION_FIX_ASSIGN_AS_EQ =
+'`=` ã«å¤‰æ›´ã—ã¾ã™ã€‚'
+ACTION_FIX_EQ_AS_ASSIGN =
+'`==` ã«å¤‰æ›´ã—ã¾ã™ã€‚'
+ACTION_FIX_UEQ =
+'`~=` ã«å¤‰æ›´ã—ã¾ã™ã€‚'
+ACTION_FIX_THEN_AS_DO =
+'`then` ã«å¤‰æ›´ã—ã¾ã™ã€‚'
+ACTION_FIX_DO_AS_THEN =
+'`do` ã«å¤‰æ›´ã—ã¾ã™ã€‚'
+ACTION_ADD_END =
+'`end` ã‚’è¿½åŠ ã—ã¾ã™ï¼ˆã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã«åŸºã¥ã„ã¦ä½ç½®ã‚’推測ã—ã¾ã™ï¼‰ã€‚'
+ACTION_FIX_COMMENT_PREFIX =
+'`--` ã«å¤‰æ›´ã—ã¾ã™ã€‚'
+ACTION_FIX_NONSTANDARD_SYMBOL =
+'`{symbol}` ã«å¤‰æ›´ã—ã¾ã™ã€‚'
+ACTION_RUNTIME_UNICODE_NAME =
+'Unicode æ–‡å—ã®ä½¿ç”¨ã‚’許å¯ã—ã¾ã™ã€‚'
+ACTION_SWAP_PARAMS =
+'`{node}` ã®ç¬¬ {index} 引数ã«å¤‰æ›´ã—ã¾ã™ã€‚'
+ACTION_FIX_INSERT_SPACE =
+'ã‚¹ãƒšãƒ¼ã‚¹ã‚’è¿½åŠ ã—ã¾ã™ã€‚'
+ACTION_JSON_TO_LUA =
+'JSON ã‚’ Lua ã«å¤‰æ›ã—ã¾ã™ã€‚'
+ACTION_DISABLE_DIAG_LINE=
+'ã“ã®è¡Œã§è¨ºæ– ({}) を無効ã«ã—ã¾ã™ã€‚'
+ACTION_DISABLE_DIAG_FILE=
+'ã“ã®ãƒ•ァイルã§è¨ºæ– ({}) を無効ã«ã—ã¾ã™ã€‚'
+ACTION_MARK_ASYNC =
+'ç¾åœ¨ã®é–¢æ•°ã‚’éžåŒæœŸã¨ã—ã¦æŒ‡å®šã—ã¾ã™ã€‚'
+ACTION_ADD_DICT =
+'\'{}\' をワークスペースã®è¾žæ›¸ã«è¿½åŠ ã—ã¾ã™ã€‚'
+ACTION_FIX_ADD_PAREN =
+'æ‹¬å¼§ã‚’è¿½åŠ ã—ã¾ã™ã€‚'
+ACTION_AUTOREQUIRE =
+'\'{}\' ã‚’ `{}` ã¨ã—ã¦ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ã¾ã™ã€‚'
+
+COMMAND_DISABLE_DIAG =
+'診æ–を無効ã«ã—ã¾ã™'
+COMMAND_MARK_GLOBAL =
+'ã‚°ãƒãƒ¼ãƒãƒ«å¤‰æ•°ã¨ã—ã¦æŒ‡å®šã—ã¾ã™'
+COMMAND_REMOVE_SPACE =
+'ã™ã¹ã¦ã®è¡Œæœ«ã‚¹ãƒšãƒ¼ã‚¹ã‚’削除ã—ã¾ã™'
+COMMAND_ADD_BRACKETS =
+'æ‹¬å¼§ã‚’è¿½åŠ ã—ã¾ã™ã€‚'
+COMMAND_RUNTIME_VERSION =
+'実行ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’変更ã—ã¾ã™'
+COMMAND_OPEN_LIBRARY =
+'サードパーティライブラリã®ã‚°ãƒãƒ¼ãƒãƒ«å¤‰æ•°ã‚’ãƒãƒ¼ãƒ‰ã—ã¾ã™'
+COMMAND_UNICODE_NAME =
+'Unicode æ–‡å—ã®ä½¿ç”¨ã‚’許å¯ã—ã¾ã™'
+COMMAND_JSON_TO_LUA =
+'JSON ã‚’ Lua ã«å¤‰æ›ã—ã¾ã™'
+COMMAND_JSON_TO_LUA_FAILED =
+'JSON ã‚’ Lua ã«å¤‰æ›ã§ãã¾ã›ã‚“ã§ã—ãŸï¼š{}'
+COMMAND_ADD_DICT =
+'å˜èªžã‚’辞書ã«è¿½åŠ ã—ã¾ã™'
+COMMAND_REFERENCE_COUNT =
+'{} ä»¶ã®å‚ç…§'
+
+COMPLETION_IMPORT_FROM =
+'{} ã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆ'
+COMPLETION_DISABLE_AUTO_REQUIRE =
+'自動 require を無効ã«ã—ã¾ã™'
+COMPLETION_ASK_AUTO_REQUIRE =
+'ファイル先é ã«ã“ã®ãƒ•ァイルを require ã™ã‚‹ã‚³ãƒ¼ãƒ‰ã‚’è¿½åŠ ã—ã¾ã™ã‹ï¼Ÿ'
+
+DEBUG_MEMORY_LEAK =
+'{} é‡å¤§ãªãƒ¡ãƒ¢ãƒªãƒªãƒ¼ã‚¯ãŒç™ºç”Ÿã—ãŸãŸã‚ã€è¨€èªžã‚µãƒ¼ãƒ“スをå†èµ·å‹•ã—ã¾ã™ã€‚'
+DEBUG_RESTART_NOW =
+'今ã™ãå†èµ·å‹•ã—ã¾ã™'
+
+WINDOW_COMPILING =
+'コンパイルä¸ã§ã™'
+WINDOW_DIAGNOSING =
+'診æ–ä¸ã§ã™'
+WINDOW_INITIALIZING =
+'åˆæœŸåŒ–ä¸ã§ã™...'
+WINDOW_PROCESSING_HOVER =
+'ホãƒãƒ¼ãƒ’ントを処ç†ä¸ã—ã¦ã„ã¾ã™...'
+WINDOW_PROCESSING_DEFINITION =
+'定義ジャンプを処ç†ã—ã¦ã„ã¾ã™...'
+WINDOW_PROCESSING_REFERENCE =
+'å‚照ジャンプを処ç†ã—ã¦ã„ã¾ã™...'
+WINDOW_PROCESSING_RENAME =
+'åå‰å¤‰æ›´ã‚’処ç†ã—ã¦ã„ã¾ã™...'
+WINDOW_PROCESSING_COMPLETION =
+'オートコンプリートを処ç†ã—ã¦ã„ã¾ã™...'
+WINDOW_PROCESSING_SIGNATURE =
+'パラメータヒントを処ç†ã—ã¦ã„ã¾ã™ã§ã™...'
+WINDOW_PROCESSING_SYMBOL =
+'ファイルシンボルを処ç†ã—ã¦ã„ã¾ã™...'
+WINDOW_PROCESSING_WS_SYMBOL =
+'ワークスペースシンボルを処ç†ã—ã¦ã„ã¾ã™...'
+WINDOW_PROCESSING_SEMANTIC_FULL =
+'セマンティックカラーリング(フール)を処ç†ã—ã¦ã„ã¾ã™...'
+WINDOW_PROCESSING_SEMANTIC_RANGE =
+'セマンティックカラーリング(インクリメンタル)を処ç†ã—ã¦ã„ã¾ã™...'
+WINDOW_PROCESSING_HINT =
+'インラインヒントを処ç†ã—ã¦ã„ã¾ã™...'
+WINDOW_PROCESSING_BUILD_META =
+'コンパイラã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã‚’処ç†ã—ã¦ã„ã¾ã™...'
+WINDOW_INCREASE_UPPER_LIMIT =
+'上é™ã‚’増やã—ã¾ã™'
+WINDOW_CLOSE =
+'クãƒãƒ¼ã‚º'
+WINDOW_SETTING_WS_DIAGNOSTIC =
+'ワークスペースè¨å®šã§è¨ºæ–ã‚’é…å»¶ã¾ãŸã¯ç„¡åŠ¹åŒ–ã§ãã¾ã™'
+WINDOW_DONT_SHOW_AGAIN =
+'å†åº¦è¡¨ç¤ºã—ãªã„'
+WINDOW_DELAY_WS_DIAGNOSTIC =
+'アイドル時ã«è¨ºæ–({}ç§’é…延)'
+WINDOW_DISABLE_DIAGNOSTIC =
+'ワークスペース診æ–を無効ã«ã—ã¾ã™'
+WINDOW_LUA_STATUS_WORKSPACE =
+'ワークスペース:{}'
+WINDOW_LUA_STATUS_CACHED_FILES =
+'ã‚ャッシュã•れãŸãƒ•ァイル:{ast}/{max}'
+WINDOW_LUA_STATUS_MEMORY_COUNT =
+'メモリ使用é‡ï¼š{mem:.f}M'
+WINDOW_LUA_STATUS_TIP =
+[[
+
+ã“ã®ã‚¢ã‚¤ã‚³ãƒ³ã¯çŒ«ã§ã™ã€‚
+犬ã§ã‚‚ç‹ã§ã‚‚ã‚りã¾ã›ã‚“ï¼
+ ↓↓↓
+]]
+WINDOW_LUA_STATUS_DIAGNOSIS_TITLE=
+'ワークスペースã®è¨ºæ–を行ã„ã¾ã™'
+WINDOW_LUA_STATUS_DIAGNOSIS_MSG =
+'ワークスペースã®è¨ºæ–を行ã„ã¾ã™ã‹ã€‚'
+WINDOW_APPLY_SETTING =
+'è¨å®šã‚’é©ç”¨ã—ã¾ã™'
+WINDOW_CHECK_SEMANTIC =
+'マーケットプレイスã®ã‚«ãƒ©ãƒ¼ãƒ†ãƒ¼ãƒžã‚’使用ã—ã¦ã„ã‚‹å ´åˆã€ã‚»ãƒžãƒ³ãƒ†ã‚£ãƒƒã‚¯ãƒã‚¤ãƒ©ã‚¤ãƒˆã‚’有効ã«ã™ã‚‹ã«ã¯ `editor.semanticHighlighting.enabled` オプションを `true` ã«è¨å®šã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã‹ã‚‚ã—れã¾ã‚“。'
+WINDOW_TELEMETRY_HINT =
+'匿åã®ä½¿ç”¨ãƒ‡ãƒ¼ã‚¿ã¨ã‚¨ãƒ©ãƒ¼ãƒ¬ãƒãƒ¼ãƒˆã®é€ä¿¡ã‚’許å¯ã—ã€ã“ã®ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ã®æ”¹å–„ã«ã”å”力ãã ã•ã„。プライãƒã‚·ãƒ¼ãƒãƒªã‚·ãƒ¼ã«ã¤ã„ã¦ã¯[ã“ã¡ã‚‰](https://luals.github.io/privacy/#language-server)ã‚’ã”覧ãã ã•ã„。'
+WINDOW_TELEMETRY_ENABLE =
+'許å¯ã—ã¾ã™'
+WINDOW_TELEMETRY_DISABLE =
+'許å¯ã—ã¾ã›ã‚“'
+WINDOW_CLIENT_NOT_SUPPORT_CONFIG =
+'ãŠä½¿ã„ã®ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã¯ã‚µãƒ¼ãƒãƒ¼å´ã‹ã‚‰ã®è¨å®šå¤‰æ›´ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“。以下ã®è¨å®šã‚’手動ã§å¤‰æ›´ã—ã¦ãã ã•ã„:'
+WINDOW_LCONFIG_NOT_SUPPORT_CONFIG=
+'ãƒãƒ¼ã‚«ãƒ«è¨å®šã®è‡ªå‹•変更ã¯ç¾åœ¨ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“。以下ã®è¨å®šã‚’手動ã§å¤‰æ›´ã—ã¦ãã ã•ã„:'
+WINDOW_MANUAL_CONFIG_ADD =
+'`{key}` ã«è¦ç´ `{value:q}` ã‚’è¿½åŠ ã—ã¾ã™;'
+WINDOW_MANUAL_CONFIG_SET =
+'`{key}` ã®å€¤ã‚’ `{value:q}` ã«è¨å®šã—ã¾ã™;'
+WINDOW_MANUAL_CONFIG_PROP =
+'`{key}` ã®ãƒ—ãƒãƒ‘ティ `{prop}` ã‚’ `{value:q}` ã«è¨å®šã—ã¾ã™;'
+WINDOW_APPLY_WHIT_SETTING =
+'è¨å®šã‚’変更ã—ã¦é©ç”¨ã—ã¾ã™'
+WINDOW_APPLY_WHITOUT_SETTING =
+'è¨å®šã‚’変更ã›ãšã«é©ç”¨ã—ã¾ã™'
+WINDOW_ASK_APPLY_LIBRARY =
+'作æ¥ç’°å¢ƒã‚’ `{}` ã«è¨å®šã—ã¾ã™ã‹ï¼Ÿ'
+WINDOW_SEARCHING_IN_FILES =
+'ファイルを検索ã—ã¦ã„ã¾ã™...'
+WINDOW_CONFIG_LUA_DEPRECATED =
+'`config.lua` ã¯å»ƒæ¢ã•れã¾ã—ãŸã€‚代ã‚り㫠`config.json` を使用ã—ã¦ãã ã•ã„。'
+WINDOW_CONVERT_CONFIG_LUA =
+'`config.json` ã«å¤‰æ›ã—ã¾ã™'
+WINDOW_MODIFY_REQUIRE_PATH =
+'`require` ã®ãƒ‘スを変更ã—ã¾ã™ã‹ã€‚'
+WINDOW_MODIFY_REQUIRE_OK =
+'変更ã—ã¾ã™'
+
+CONFIG_LOAD_FAILED =
+'è¨å®šãƒ•ァイルをèªã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸï¼š{}'
+CONFIG_LOAD_ERROR =
+'è¨å®šãƒ•ァイルã®èªã¿è¾¼ã¿ä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸï¼š{}'
+CONFIG_TYPE_ERROR =
+'è¨å®šãƒ•ァイル㯠lua ã¾ãŸã¯ json フォーマットã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“:{}'
+CONFIG_MODIFY_FAIL_SYNTAX_ERROR =
+'è¨å®šãƒ•ァイルä¸ã«æ§‹æ–‡ã‚¨ãƒ©ãƒ¼ãŒã‚ã£ãŸãŸã‚ã€è¨å®šã‚’変更ã§ãã¾ã›ã‚“ã§ã—ãŸï¼š{}'
+CONFIG_MODIFY_FAIL_NO_WORKSPACE =
+[[
+è¨å®šã®å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—ãŸï¼š
+* `.luarc.json` ファイルã®ä½œæˆã«ã¯ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ãŒå¿…è¦ã§ã™ãŒã€ç¾åœ¨ã¯å˜ä¸€ãƒ•ァイルモードã«ãªã£ã¦ã„ã¾ã™ã€‚
+* クライアントã¯ã‚µãƒ¼ãƒãƒ¼å´ã‹ã‚‰ã®è¨å®šå¤‰æ›´ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“。
+
+以下ã®è¨å®šã‚’手動ã§å¤‰æ›´ã—ã¦ãã ã•ã„:
+{}
+]]
+CONFIG_MODIFY_FAIL =
+[[
+è¨å®šã®å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—ãŸã€‚
+
+以下ã®è¨å®šã‚’手動ã§å¤‰æ›´ã—ã¦ãã ã•ã„:
+{}
+]]
+
+PLUGIN_RUNTIME_ERROR =
+[[
+プラグインã®å®Ÿè¡Œä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚プラグイン作æˆè€…ã«å ±å‘Šã—ã¦ãã ã•ã„。
+詳細ã¯å‡ºåŠ›ã¾ãŸã¯ãƒã‚°ç”»é¢ã§ã”確èªãã ã•ã„。
+プラグインã®ãƒ‘ス:{}
+]]
+PLUGIN_TRUST_LOAD =
+[[
+ç¾åœ¨ã®è¨å®šã§ã¯ã€æ¬¡ã®å ´æ‰€ã«ã‚るプラグインをèªã¿è¾¼ã‚‚ã†ã¨ã—ã¦ã„ã¾ã™ï¼š
+{}
+
+悪æ„ã®ã‚るプラグインã¯ã‚³ãƒ³ãƒ”ュータã«å®³ã‚’与ãˆã‚‹å¯èƒ½æ€§ãŒã‚ã‚‹ã“ã¨ã«ã”注æ„ãã ã•ã„。
+]]
+PLUGIN_TRUST_YES =
+[[
+ã“ã®ãƒ—ãƒ©ã‚°ã‚¤ãƒ³ã‚’ä¿¡é ¼ã—ã¦èªã¿è¾¼ã‚€
+]]
+PLUGIN_TRUST_NO =
+[[
+ã“ã®ãƒ—ラグインをèªã¿è¾¼ã¾ãªã„
+]]
+
+CLI_CHECK_ERROR_TYPE =
+'check ã¯æ–‡å—列ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“ãŒã€{} ãŒæŒ‡å®šã•れã¾ã—ãŸ'
+CLI_CHECK_ERROR_URI =
+'check ã¯æœ‰åŠ¹ãª URI ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“ãŒã€{} ãŒæŒ‡å®šã•れã¾ã—ãŸ'
+CLI_CHECK_ERROR_LEVEL =
+'checklevel ã¯æ¬¡ã®ã„ãšã‚Œã‹ã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ï¼š{}'
+CLI_CHECK_INITING =
+'åˆæœŸåŒ–ä¸...'
+CLI_CHECK_SUCCESS =
+'診æ–ãŒå®Œäº†ã—ã¾ã—ãŸã€‚å•題ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ'
+CLI_CHECK_PROGRESS =
+'{} ãƒ•ã‚¡ã‚¤ãƒ«ã«æ¸¡ã‚Šã€{} 個ã®å•題ãŒç™ºè¦‹ã•れã¾ã—ãŸ'
+CLI_CHECK_RESULTS_OUTPATH =
+'診æ–ãŒå®Œäº†ã—ã¾ã—ãŸã€‚{} 個ã®å•題ãŒç™ºè¦‹ã•れã¾ã—ãŸã€‚詳ã—ã㯠{} ã‚’ã”確èªãã ã•ã„'
+CLI_CHECK_RESULTS_PRETTY =
+'診æ–ãŒå®Œäº†ã—ã¾ã—ãŸã€‚{} 個ã®å•題ãŒç™ºè¦‹ã•れã¾ã—ãŸ'
+CLI_CHECK_MULTIPLE_WORKERS =
+'{} 個ã®ãƒ¯ãƒ¼ã‚«ãƒ¼ã‚¿ã‚¹ã‚¯ã‚’é–‹å§‹ã—ã¦ã„ã‚‹ãŸã‚ã€é€²è¡Œçжæ³ã®å‡ºåŠ›ãŒç„¡åйã«ãªã‚Šã¾ã™ã€‚完了ã¾ã§æ•°åˆ†ã‹ã‹ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚'
+CLI_DOC_INITING =
+'ドã‚ュメントをèªã¿è¾¼ã‚“ã§ã„ã¾ã™...'
+CLI_DOC_DONE =
+[[
+ドã‚ュメントã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆãŒå®Œäº†ã—ã¾ã—ãŸï¼
+元データ: {}
+Markdown(例): {}
+]]
+CLI_DOC_WORKING = -- TODO: need translate!
+'Building docs...'
+
+TYPE_ERROR_ENUM_GLOBAL_DISMATCH =
+'タイプ `{child}` 㯠`{parent}` ã®åˆ—挙型ã«ä¸€è‡´ã—ã¾ã›ã‚“'
+TYPE_ERROR_ENUM_GENERIC_UNSUPPORTED =
+'列挙型ã«ãŠã„ã¦ã‚¸ã‚§ãƒãƒªãƒƒã‚¯åž‹ `{child}` を使用ã§ãã¾ã›ã‚“'
+TYPE_ERROR_ENUM_LITERAL_DISMATCH =
+'リテラル `{child}` 㯠`{parent}` ã®åˆ—挙値ã«ä¸€è‡´ã—ã¾ã›ã‚“'
+TYPE_ERROR_ENUM_OBJECT_DISMATCH =
+'オブジェクト `{child}` 㯠`{parent}` ã®åˆ—挙値ã«ä¸€è‡´ã—ã¾ã›ã‚“。åŒã˜ã‚ªãƒ–ジェクトã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™'
+TYPE_ERROR_ENUM_NO_OBJECT =
+'渡ã•れãŸåˆ—挙値 `{child}` ã‚’èªè˜ã§ãã¾ã›ã‚“'
+TYPE_ERROR_INTEGER_DISMATCH =
+'リテラル `{child}` ã¯æ•´æ•° `{parent}` ã«ä¸€è‡´ã—ã¾ã›ã‚“'
+TYPE_ERROR_STRING_DISMATCH =
+'リテラル `{child}` ã¯æ–‡å—列 `{parent}` ã«ä¸€è‡´ã—ã¾ã›ã‚“'
+TYPE_ERROR_BOOLEAN_DISMATCH =
+'リテラル `{child}` ã¯ãƒ–ール値 `{parent}` ã«ä¸€è‡´ã—ã¾ã›ã‚“'
+TYPE_ERROR_TABLE_NO_FIELD =
+'テーブルã«ãƒ•ィールド `{key}` ãŒå˜åœ¨ã—ã¾ã›ã‚“'
+TYPE_ERROR_TABLE_FIELD_DISMATCH =
+'フィールド `{key}` ã®åž‹ `{child}` 㯠`{parent}` ã«ä¸€è‡´ã—ã¾ã›ã‚“'
+TYPE_ERROR_CHILD_ALL_DISMATCH =
+'`{child}` ã®ã™ã¹ã¦ã®ã‚µãƒ–タイプ㯠`{parent}` ã«ä¸€è‡´ã—ã¾ã›ã‚“'
+TYPE_ERROR_PARENT_ALL_DISMATCH =
+'`{child}` 㯠`{parent}` ã®ã©ã®ã‚µãƒ–タイプã«ã‚‚一致ã—ã¾ã›ã‚“'
+TYPE_ERROR_UNION_DISMATCH =
+'`{child}` 㯠`{parent}` ã«ä¸€è‡´ã—ã¾ã›ã‚“'
+TYPE_ERROR_OPTIONAL_DISMATCH =
+'オプション型㯠`{parent}` ã«ä¸€è‡´ã—ã¾ã›ã‚“'
+TYPE_ERROR_NUMBER_LITERAL_TO_INTEGER =
+'æ•°å— `{child}` ã‚’æ•´æ•°ã«å¤‰æ›ã§ãã¾ã›ã‚“'
+TYPE_ERROR_NUMBER_TYPE_TO_INTEGER =
+'数値型を整数型ã«å¤‰æ›ã§ãã¾ã›ã‚“'
+TYPE_ERROR_DISMATCH =
+'åž‹ `{child}` 㯠`{parent}` ã«ä¸€è‡´ã—ã¾ã›ã‚“'
+
+LUADOC_DESC_CLASS =
+[=[
+クラス/ãƒ†ãƒ¼ãƒ–ãƒ«æ§‹é€ ã‚’å®šç¾©ã—ã¾ã™ã€‚
+## æ›¸ãæ–¹
+`---@class [: [, ]...]`
+## 例
+```
+---@class Manager: Person, Human
+Manager = {}
+```
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations#class)
+]=]
+LUADOC_DESC_TYPE =
+[=[
+変数ã®åž‹ã‚’指定ã—ã¾ã™ã€‚
+
+デフォルトã®åž‹ã¯ `nil`ã€`any`ã€`boolean`ã€`string`ã€`number`ã€`integer`ã€
+`function`ã€`table`ã€`thread`ã€`userdata`ã€`lightuserdata`
+
+(カスタム型㯠`@alias`を用ã„ã¦å®šç¾©ã§ãã¾ï¼‰
+
+## æ›¸ãæ–¹
+`---@type [| [type]...`
+
+## 例
+### 一般
+```
+---@type nil|table|myClass
+local Example = nil
+```
+
+### é…列
+```
+---@type number[]
+local phoneNumbers = {}
+```
+
+### 列挙
+```
+---@type "red"|"green"|"blue"
+local color = ""
+```
+
+### テーブル
+```
+---@type table
+local settings = {
+ disableLogging = true,
+ preventShutdown = false,
+}
+
+---@type { [string]: true }
+local x --x[""] is true
+```
+
+### 関数
+```
+---@type fun(mode?: "r"|"w"): string
+local myFunction
+```
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations#type)
+]=]
+LUADOC_DESC_ALIAS =
+[=[
+`@param` ã‚„ `@type` ã«åˆ©ç”¨ã§ãるカスタム型を定義ã—ã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`---@alias [description]`\
+or
+```
+---@alias
+---| 'value' [# comment]
+---| 'value2' [# comment]
+...
+```
+
+## 例
+### ä»–ã®åž‹ã«å±•é–‹
+```
+---@alias filepath string ファイルã¸ã®ãƒ‘ス
+
+---@param path filepath 探索を行ã†ãƒ•ァイルã¸ã®ãƒ‘ス
+function find(path, pattern) end
+```
+
+### 列挙
+```
+---@alias font-style
+---| '"underlined"' # テã‚ストã«ä¸‹ç·šã‚’付ã‘ã‚‹
+---| '"bold"' # テã‚ストを太å—ã«ã™ã‚‹
+---| '"italic"' # テã‚ストをイタリック体ã«ã™ã‚‹
+
+---@param style font-style é©ç”¨ã™ã‚‹ãƒ•ォントスタイル
+function setFontStyle(style) end
+```
+
+### リテラル列挙
+```
+local enums = {
+ READ = 0,
+ WRITE = 1,
+ CLOSED = 2
+}
+
+---@alias FileStates
+---| `enums.READ`
+---| `enums.WRITE`
+---| `enums.CLOSE`
+```
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations#alias)
+]=]
+LUADOC_DESC_PARAM =
+[=[
+関数ã®ãƒ‘ラメータを宣言ã—ã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`@param [?] [comment]`
+
+## 例
+### 一般
+```
+---@param url string リクエストã™ã‚‹URL
+---@param headers? table é€ä¿¡ã™ã‚‹HTTPヘッダー
+---@param timeout? number タイムアウト(秒)
+function get(url, headers, timeout) end
+```
+
+### å¯å¤‰é•·å¼•æ•°
+```
+---@param base string 基底文å—列
+---@param ... string 基底文å—列ã«é€£çµã™ã‚‹å€¤
+function concat(base, ...) end
+```
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations#param)
+]=]
+LUADOC_DESC_RETURN =
+[=[
+戻り値を宣言ã—ã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`@return [name] [description]`\
+or\
+`@return [# description]`
+
+## 例
+### 一般
+```
+---@return number
+---@return number # ç·‘ã®å€¤
+---@return number b é’ã®å€¤
+function hexToRGB(hex) end
+```
+
+### åž‹ã¨åå‰ã®ã¿ã‚’指定ã™ã‚‹å ´åˆ
+```
+---@return number x, number y
+function getCoords() end
+```
+
+### åž‹ã®ã¿ã‚’指定ã™ã‚‹å ´åˆ
+```
+---@return string, string
+function getFirstLast() end
+```
+
+### å¯å¤‰é•·ã®å€¤ã‚’è¿”ã™å ´åˆ
+```
+---@return string ... アイテムã®ã‚¿ã‚°
+function getTags(item) end
+```
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations#return)
+]=]
+LUADOC_DESC_FIELD =
+[=[
+クラス/テーブル内ã®ãƒ•ィールドを宣言ã—ã¾ã™ã€‚`v3.6.0`以é™ã§ã¯ã€ãƒ•ィールドを`private`ã€`protected`ã€`public`ã€ã¾ãŸã¯`package`ã¨ã—ã¦æŒ‡å®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`---@field [scope] [description]`
+
+## 例
+```
+---@class HTTP_RESPONSE
+---@field status HTTP_STATUS
+---@field headers table レスãƒãƒ³ã‚¹ã®ãƒ˜ãƒƒãƒ€ãƒ¼
+
+---@class HTTP_STATUS
+---@field code number ステータスコード
+---@field message string ステータスメッセージ
+
+---@return HTTP_RESPONSE response サーãƒãƒ¼ã‹ã‚‰ã®ãƒ¬ã‚¹ãƒãƒ³ã‚¹
+function get(url) end
+
+-- 下記変数ã«ã¯ä¸Šè¨˜ã§å®šç¾©ã•れãŸã™ã¹ã¦ã®ãƒ•ィールドãŒå«ã¾ã‚Œã¦ã„ã¾ã™
+response = get("localhost")
+
+-- コード補完や詳細表示ãªã©ã®ã‚¤ãƒ³ãƒ†ãƒªã‚»ãƒ³ã‚¹æ©Ÿèƒ½ã‚‚æä¾›ã§ãるよã†ã«ãªã‚Šã¾ã™
+statusCode = response.status.code
+```
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations#field)
+]=]
+LUADOC_DESC_GENERIC =
+[=[
+ジェãƒãƒªã‚¯åž‹ã‚’宣言ã—ã¾ã™ã€‚ジェãƒãƒªãƒƒã‚¯åž‹ã¯åˆ©ç”¨ã•れる度ã«ç•°ãªã‚‹åž‹ã¨ä¸€è‡´ã™ã‚‹ã“ã¨ãŒã§ãã€æ±Žç”¨çš„ãªé–¢æ•°ã®è¨˜è¿°ã«å½¹ç«‹ã¡ã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`---@generic [:parent_type] [, [:parent_type]]`
+
+## 例
+### General
+```
+---@generic T
+---@param value T 戻り値ã¨åŒã˜åž‹ã®å€¤
+---@return T value 指定ã•れãŸå€¤ã¨åŒã˜
+function echo(value)
+ return value
+end
+
+-- 型㯠string
+s = echo("e")
+
+-- 型㯠number
+n = echo(10)
+
+-- 型㯠boolean
+b = echo(true)
+
+-- 許å¯ã•れる型を一ã¤ãšã¤æŒ‡å®šã™ã‚‹å¤‰ã‚りã«ã€
+-- @generic を用ã„ã¦ã™ã¹ã¦ã®åž‹ã«å¯¾å¿œã§ãã¾ã™
+```
+
+### åž‹åã‹ã‚‰ã‚¸ã‚§ãƒãƒªãƒƒã‚¯åž‹ã‚’è¨å®šã™ã‚‹
+```
+---@class Foo
+local Foo = {}
+function Foo:Bar() end
+
+---@generic T
+---@param name `T` # åž‹åを指定
+---@return T # ジェãƒãƒªãƒƒã‚¯åž‹ã®å€¤ã‚’è¿”ã™
+function Generic(name) end
+
+local v = Generic("Foo") -- v 㯠Foo åž‹ã®ã‚ªãƒ–ジェクト
+```
+
+### LuaテーブルãŒã‚¸ã‚§ãƒãƒªã‚¯ã‚¹ã‚’ä½¿ã†æ–¹æ³•
+```
+---@class table: { [K]: V }
+
+-- 上記を用ã„ã‚‹ã“ã¨ã§ã€ãƒ†ãƒ¼ãƒ–ルã®ä½œæˆã¨
+-- インテリセンスã«ã‚ˆã‚‹åž‹ã®è¿½è·¡ãŒå¯èƒ½ã«ãªã‚‹
+```
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations/#generic)
+]=]
+LUADOC_DESC_VARARG =
+[=[
+主ã«EmmyLua注釈ã¨ã®äº’æ›æ€§ã®ãŸã‚。`@vararg`ã§å®šç¾©ã•れãŸåž‹æƒ…å ±ã¯ã‚¤ãƒ³ãƒ†ãƒªã‚»ãƒ³ã‚¹ãªã©ã«æä¾›ã•れã¾ã›ã‚“。
+
+**ãƒ‘ãƒ©ãƒ¡ãƒ¼ã‚¿ãƒ¼ã«æ³¨é‡ˆã‚’付ã‘ã‚‹éš›ã«ã¯ã€å¯å¤‰é•·ã§ã‚ã£ã¦ã‚‚`@param`を使用ã—ã¦ãã ã•ã„。**
+
+## æ›¸ãæ–¹
+`@vararg `
+
+## 例
+```
+---æ–‡å—列を連çµã—ã¾ã™
+---@vararg string
+function concat(...) end
+```
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations/#vararg)
+]=]
+LUADOC_DESC_OVERLOAD =
+[=[
+複数ã®é–¢æ•°ã‚·ã‚°ãƒãƒãƒ£ã‚’一括ã§å®šç¾©ã™ã‚‹ãŸã‚ã«åˆ©ç”¨ã—ã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`---@overload fun([: ] [, [: ]]...)[: [, ]...]`
+
+## 例
+```
+---@overload fun(t: table, value: any): number
+function table.insert(t, position, value) end
+```
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations#overload)
+]=]
+LUADOC_DESC_DEPRECATED =
+[=[
+é–¢æ•°ã‚’éžæŽ¨å¥¨ã¨ã—ã¦æŒ‡å®šã—ã¾ã™ã€‚éžæŽ¨å¥¨é–¢æ•°ã®å‘¼ã³å‡ºã—箇所ã«ã¯å–り消ã—ç·šãŒå¼•ã‹ã‚Œã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`---@deprecated`
+
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations#deprecated)
+]=]
+LUADOC_DESC_META =
+[=[
+ã“ã®ãƒ•ァイルãŒãƒ¡ã‚¿ãƒ•ァイルã§ã‚ã‚‹ã“ã¨ã‚’示ã—ã¾ã™ã€‚
+
+メタファイルã¯ã‚¤ãƒ³ãƒ†ãƒªã‚»ãƒ³ã‚¹ç”¨ã®å®šç¾©ã¨æ³¨é‡ˆã®ã¿ã‚’å«ã‚€ãƒ•ァイルã§ã€é€šå¸¸ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¨æ¯”ã¹ã¦ä»¥ä¸‹ã®ä¸‰ã¤ã®ç‰¹å¾´ãŒã‚りã¾ã™ã€‚
+1. メタファイル内ã«ã¯ã‚³ãƒ³ãƒ†ã‚ストã«åŸºã¥ãã‚¤ãƒ³ãƒ†ãƒªã‚»ãƒ³ã‚¹ãŒæä¾›ã•れã¾ã›ã‚“。
+2. メタファイル内㮠`require` ファイルパスã«ã‚«ãƒ¼ã‚½ãƒ«ã‚’åˆã‚ã›ã‚‹ã¨ã€çµ¶å¯¾ãƒ‘スã®ä»£ã‚り㫠`[meta]` ãŒè¡¨ç¤ºã•れã¾ã™ã€‚
+3. メタファイル内ã®å®šç¾©ã¯ `Find Reference` 機能ã«ç„¡è¦–ã•れã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`---@meta`
+
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations#meta)
+]=]
+LUADOC_DESC_VERSION =
+[=[
+ã“ã®é–¢æ•°ãŒç‰¹å®šã®Luaãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«é™å®šã•れるã“ã¨ã‚’指定ã—ã¾ã™ã€‚
+
+指定å¯èƒ½ãªLuaã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¯: `5.1`, `5.2`, `5.3`, `5.4`, `JIT`。
+
+事å‰ã« `Diagnostics: Needed File Status` ã‚’è¨å®šã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`---@version [, ]...`
+
+## 例
+### General
+```
+---@version JIT
+function onlyWorksInJIT() end
+```
+### 複数ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®æŒ‡å®š
+```
+---@version <5.2,JIT
+function oldLuaOnly() end
+```
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations#version)
+]=]
+LUADOC_DESC_SEE =
+[=[
+ワークスペース内ã®ã‚·ãƒ³ãƒœãƒ«ã¸ã®å‚照を指定ã—ã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`---@see `
+
+## 例
+```
+---下記関数ã«ãƒžã‚¦ã‚¹ã‚’åˆã‚ã›ã‚‹ã¨ã€http.get関数ã¸ã®ãƒªãƒ³ã‚¯ãŒè¡¨ç¤ºã•れã¾ã™
+---@see http.get
+function request(url) end
+```
+
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations#see)
+]=]
+LUADOC_DESC_DIAGNOSTIC =
+[=[
+エラーやè¦å‘Šãªã©ã®è¨ºæ–を有効化/無効化ã—ã¾ã™ã€‚
+
+指定å¯èƒ½ãªã‚¢ã‚¯ã‚·ãƒ§ãƒ³: `disable`, `enable`, `disable-line`, `disable-next-line`
+
+[Names](https://github.com/LuaLS/lua-language-server/blob/cbb6e6224094c4eb874ea192c5f85a6cba099588/script/proto/define.lua#L54)
+
+## æ›¸ãæ–¹
+`---@diagnostic [: ]`
+
+## 例
+### 次ã®è¡Œã«ãŠã„ã¦è¦å‘Šã‚’無効化
+```
+---@diagnostic disable-next-line: undefined-global
+```
+
+### é ˜åŸŸã‚’å›²ã‚“ã§æ‰‹å‹•ã§è¦å‘Šã‚’トグル
+```
+---@diagnostic disable: unused-local
+local unused = "hello world"
+---@diagnostic enable: unused-local
+```
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations#diagnostic)
+]=]
+LUADOC_DESC_MODULE =
+[=[
+`require`ã¨åŒæ§˜ãªæ„味ã§ã€æŒ‡å®šã•れãŸãƒ•ã‚¡ã‚¤ãƒ«ã®æ³¨é‡ˆæƒ…å ±ã‚’æä¾›ã—ã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`---@module <'module_name'>`
+
+## 例
+```
+---@module 'string.utils'
+local stringUtils
+-- 上記ã¯ä¸‹è¨˜ã¨æ©Ÿèƒ½çš„ã«åŒã˜ã§ã™
+local module = require('string.utils')
+```
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations#module)
+]=]
+LUADOC_DESC_ASYNC =
+[=[
+関数をéžåŒæœŸã¨ã—ã¦æŒ‡å®šã—ã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`---@async`
+
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations#async)
+]=]
+LUADOC_DESC_NODISCARD =
+[=[
+ã“ã®é–¢æ•°ã®æˆ»ã‚Šå€¤ã¯ç ´æ£„/無視ã§ããªã„ã‚‚ã®ã¨ã—ã¦æŒ‡å®šã—ã¾ã™ã€‚
+戻り値ãŒç„¡è¦–ã•れãŸå ´åˆã€`discard-returns` ã®è¦å‘ŠãŒç™ºç”Ÿã—ã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`---@nodiscard`
+
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations#nodiscard)
+]=]
+LUADOC_DESC_CAST =
+[=[
+åž‹å¤‰æ› (ã‚ャスト)を指定ã—ã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`@cast <[+|-]type>[, <[+|-]type>]...`
+
+## 例
+### 型を上書ã
+```
+---@type integer
+local x --> æ•´æ•°
+
+---@cast x string
+print(x) --> æ–‡å—列
+```
+### 型を追åŠ
+```
+---@type string
+local x --> æ–‡å—列
+
+---@cast x +boolean, +number
+print(x) --> æ–‡å—列|ブール|数値
+```
+### 型を削除
+```
+---@type string|table
+local x --> æ–‡å—列|テーブル
+---@cast x -string
+print(x) --> テーブル
+```
+---
+[Wikiを表示](https://luals.github.io/wiki/annotations#cast)
+]=]
+LUADOC_DESC_OPERATOR =
+[=[
+[演算åメタメソッド](http://lua-users.org/wiki/MetatableEvents)ã®åž‹ã‚’宣言ã—ã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`@operator [(input_type)]:`
+
+## 例
+### åŠ ç®—æ¼”ç®—
+```
+---@class Vector
+---@operation add(Vector):Vector
+
+vA = Vector.new(1, 2, 3)
+vB = Vector.new(10, 20, 30)
+
+vC = vA + vB
+--> Vector
+```
+### è² ã®å˜é …演算(unary minus)
+```
+---@class Passcode
+---@operation unm:integer
+
+pA = Passcode.new(1234)
+pB = -pA
+--> æ•´æ•°
+```
+[View Request](https://github.com/LuaLS/lua-language-server/issues/599)
+]=]
+LUADOC_DESC_ENUM =
+[=[
+テーブルを列挙型ã¨ã—ã¦æŒ‡å®šã—ã¾ã™ã€‚Luaテーブルã¨ã—ã¦å®šç¾©ã§ããªã„å ´åˆã¯ã€[`@alias`](https://luals.github.io/wiki/annotations#alias)ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
+
+## æ›¸ãæ–¹
+`@enum `
+
+## 例
+```
+---@enum colors
+local colors = {
+ white = 0,
+ orange = 2,
+ yellow = 4,
+ green = 8,
+ black = 16,
+}
+
+---@param color colors
+local function setColor(color) end
+
+-- 以下ã®ãƒ‘ラメータã«å¯¾ã—ã¦è£œå®Œã¨ãƒ›ãƒãƒ¼ãŒæä¾›ã•れã¾ã™
+setColor(colors.green)
+```
+]=]
+LUADOC_DESC_SOURCE =
+[=[
+ä»–ã®ãƒ•ァイルをシンボルã®å®šç¾©å…ƒã¨ã—ã¦æŒ‡å®šã—ã¾ã™ã€‚ãã®ã‚·ãƒ³ãƒœãƒ«ã«å¯¾ã—ã¦å®šç¾©ã‚¸ãƒ£ãƒ³ãƒ—を行ã†éš›ã€ `@source` ã§æŒ‡å®šã•れãŸãƒ•ァイルã«é£›ã³ã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`@source `
+
+## 例
+```
+---絶対パスを使用ã™ã‚‹å ´åˆ
+---@source C:/Users/me/Documents/program/myFile.c
+local a
+
+---URIを使用ã™ã‚‹å ´åˆ
+---@source file:///C:/Users/me/Documents/program/myFile.c:10
+local b
+
+---相対パスを使用ã™ã‚‹å ´åˆ
+---@source local/file.c
+local c
+
+---行番å·ã¨æ–‡å—番å·ã®æŒ‡å®šã‚‚å¯èƒ½ã§ã™
+---@source local/file.c:10:8
+local d
+```
+]=]
+LUADOC_DESC_PACKAGE =
+[=[
+ä»–ã®ãƒ•ァイルã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã§ããªã„関数ã¨ã—ã¦æŒ‡å®šã—ã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`@package`
+
+## 例
+```
+---@class Animal
+---@field private eyes integer
+local Animal = {}
+
+---@package
+---ã“ã®é–¢æ•°ã¯ä»–ã®ãƒ•ァイルã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“
+function Animal:eyesCount()
+ return self.eyes
+end
+```
+]=]
+LUADOC_DESC_PRIVATE =
+[=[
+特定ã®ã‚¯ãƒ©ã‚¹ä»¥å¤–ã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã§ããªã„関数ã¨ã—ã¦æŒ‡å®šã—ã¾ã™ã€‚プライベートã¨ã—ã¦æŒ‡å®šã•れãŸé–¢æ•°ã¯åクラスã‹ã‚‰ã‚‚アクセスã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。
+
+## æ›¸ãæ–¹
+`@private`
+
+## 例
+```
+---@class Animal
+---@field private eyes integer
+local Animal = {}
+
+---@private
+function Animal:eyesCount()
+ return self.eyes
+end
+
+---@class Dog:Animal
+local myDog = {}
+
+---許å¯ã•れã¦ã„ã¾ã›ã‚“ï¼
+myDog:eyesCount();
+```
+]=]
+LUADOC_DESC_PROTECTED =
+[=[
+特定ã®ã‚¯ãƒ©ã‚¹ã¨ãã®åクラス以外ã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã§ããªã„関数ã¨ã—ã¦æŒ‡å®šã—ã¾ã™ã€‚プãƒãƒ†ã‚¯ãƒˆã¨ã—ã¦æŒ‡å®šã•れãŸé–¢æ•°ã¯åクラスã‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã€‚
+
+## æ›¸ãæ–¹
+`@protected`
+
+## 例
+```
+---@class Animal
+---@field private eyes integer
+local Animal = {}
+
+---@protected
+function Animal:eyesCount()
+ return self.eyes
+end
+
+---@class Dog:Animal
+local myDog = {}
+
+---プãƒãƒ†ã‚¯ãƒˆé–¢æ•°ã®ãŸã‚åクラスã‹ã‚‰ã®ä½¿ç”¨ãŒè¨±å¯ã•れã¦ã„ã¾ã™
+myDog:eyesCount();
+```
+]=]
diff --git a/nvim/mason/packages/lua-language-server/libexec/locale/ja-jp/setting.lua b/nvim/mason/packages/lua-language-server/libexec/locale/ja-jp/setting.lua
new file mode 100644
index 0000000..a8c3073
--- /dev/null
+++ b/nvim/mason/packages/lua-language-server/libexec/locale/ja-jp/setting.lua
@@ -0,0 +1,465 @@
+---@diagnostic disable: undefined-global
+
+config.addonManager.enable = -- TODO: need translate!
+"Whether the addon manager is enabled or not."
+config.addonManager.repositoryBranch = -- TODO: need translate!
+"Specifies the git branch used by the addon manager."
+config.addonManager.repositoryPath = -- TODO: need translate!
+"Specifies the git path used by the addon manager."
+config.runtime.version = -- TODO: need translate!
+"Lua runtime version."
+config.runtime.path = -- TODO: need translate!
+[[
+When using `require`, how to find the file based on the input name.
+Setting this config to `?/init.lua` means that when you enter `require 'myfile'`, `${workspace}/myfile/init.lua` will be searched from the loaded files.
+if `runtime.pathStrict` is `false`, `${workspace}/**/myfile/init.lua` will also be searched.
+If you want to load files outside the workspace, you need to set `Lua.workspace.library` first.
+]]
+config.runtime.pathStrict = -- TODO: need translate!
+'When enabled, `runtime.path` will only search the first level of directories, see the description of `runtime.path`.'
+config.runtime.special = -- TODO: need translate!
+[[The custom global variables are regarded as some special built-in variables, and the language server will provide special support
+The following example shows that 'include' is treated as' require '.
+```json
+"Lua.runtime.special" : {
+ "include" : "require"
+}
+```
+]]
+config.runtime.unicodeName = -- TODO: need translate!
+"Allows Unicode characters in name."
+config.runtime.nonstandardSymbol = -- TODO: need translate!
+"Supports non-standard symbols. Make sure that your runtime environment supports these symbols."
+config.runtime.plugin = -- TODO: need translate!
+"Plugin path. Please read [wiki](https://luals.github.io/wiki/plugins) to learn more."
+config.runtime.pluginArgs = -- TODO: need translate!
+"Additional arguments for the plugin."
+config.runtime.fileEncoding = -- TODO: need translate!
+"File encoding. The `ansi` option is only available under the `Windows` platform."
+config.runtime.builtin = -- TODO: need translate!
+[[
+Adjust the enabled state of the built-in library. You can disable (or redefine) the non-existent library according to the actual runtime environment.
+
+* `default`: Indicates that the library will be enabled or disabled according to the runtime version
+* `enable`: always enable
+* `disable`: always disable
+]]
+config.runtime.meta = -- TODO: need translate!
+'Format of the directory name of the meta files.'
+config.diagnostics.enable = -- TODO: need translate!
+"Enable diagnostics."
+config.diagnostics.disable = -- TODO: need translate!
+"Disabled diagnostic (Use code in hover brackets)."
+config.diagnostics.globals = -- TODO: need translate!
+"Defined global variables."
+config.diagnostics.globalsRegex = -- TODO: need translate!
+"Find defined global variables using regex."
+config.diagnostics.severity = -- TODO: need translate!
+[[
+Modify the diagnostic severity.
+
+End with `!` means override the group setting `diagnostics.groupSeverity`.
+]]
+config.diagnostics.neededFileStatus = -- TODO: need translate!
+[[
+* Opened: only diagnose opened files
+* Any: diagnose all files
+* None: disable this diagnostic
+
+End with `!` means override the group setting `diagnostics.groupFileStatus`.
+]]
+config.diagnostics.groupSeverity = -- TODO: need translate!
+[[
+Modify the diagnostic severity in a group.
+`Fallback` means that diagnostics in this group are controlled by `diagnostics.severity` separately.
+Other settings will override individual settings without end of `!`.
+]]
+config.diagnostics.groupFileStatus = -- TODO: need translate!
+[[
+Modify the diagnostic needed file status in a group.
+
+* Opened: only diagnose opened files
+* Any: diagnose all files
+* None: disable this diagnostic
+
+`Fallback` means that diagnostics in this group are controlled by `diagnostics.neededFileStatus` separately.
+Other settings will override individual settings without end of `!`.
+]]
+config.diagnostics.workspaceEvent = -- TODO: need translate!
+"Set the time to trigger workspace diagnostics."
+config.diagnostics.workspaceEvent.OnChange = -- TODO: need translate!
+"Trigger workspace diagnostics when the file is changed."
+config.diagnostics.workspaceEvent.OnSave = -- TODO: need translate!
+"Trigger workspace diagnostics when the file is saved."
+config.diagnostics.workspaceEvent.None = -- TODO: need translate!
+"Disable workspace diagnostics."
+config.diagnostics.workspaceDelay = -- TODO: need translate!
+"Latency (milliseconds) for workspace diagnostics."
+config.diagnostics.workspaceRate = -- TODO: need translate!
+"Workspace diagnostics run rate (%). Decreasing this value reduces CPU usage, but also reduces the speed of workspace diagnostics. The diagnosis of the file you are currently editing is always done at full speed and is not affected by this setting."
+config.diagnostics.libraryFiles = -- TODO: need translate!
+"How to diagnose files loaded via `Lua.workspace.library`."
+config.diagnostics.libraryFiles.Enable = -- TODO: need translate!
+"Always diagnose these files."
+config.diagnostics.libraryFiles.Opened = -- TODO: need translate!
+"Only when these files are opened will it be diagnosed."
+config.diagnostics.libraryFiles.Disable = -- TODO: need translate!
+"These files are not diagnosed."
+config.diagnostics.ignoredFiles = -- TODO: need translate!
+"How to diagnose ignored files."
+config.diagnostics.ignoredFiles.Enable = -- TODO: need translate!
+"Always diagnose these files."
+config.diagnostics.ignoredFiles.Opened = -- TODO: need translate!
+"Only when these files are opened will it be diagnosed."
+config.diagnostics.ignoredFiles.Disable = -- TODO: need translate!
+"These files are not diagnosed."
+config.diagnostics.disableScheme = -- TODO: need translate!
+'Do not diagnose Lua files that use the following scheme.'
+config.diagnostics.unusedLocalExclude = -- TODO: need translate!
+'Do not diagnose `unused-local` when the variable name matches the following pattern.'
+config.workspace.ignoreDir = -- TODO: need translate!
+"Ignored files and directories (Use `.gitignore` grammar)."-- .. example.ignoreDir,
+config.workspace.ignoreSubmodules = -- TODO: need translate!
+"Ignore submodules."
+config.workspace.useGitIgnore = -- TODO: need translate!
+"Ignore files list in `.gitignore` ."
+config.workspace.maxPreload = -- TODO: need translate!
+"Max preloaded files."
+config.workspace.preloadFileSize = -- TODO: need translate!
+"Skip files larger than this value (KB) when preloading."
+config.workspace.library = -- TODO: need translate!
+"In addition to the current workspace, which directories will load files from. The files in these directories will be treated as externally provided code libraries, and some features (such as renaming fields) will not modify these files."
+config.workspace.checkThirdParty = -- TODO: need translate!
+[[
+Automatic detection and adaptation of third-party libraries, currently supported libraries are:
+
+* OpenResty
+* Cocos4.0
+* LÖVE
+* LÖVR
+* skynet
+* Jass
+]]
+config.workspace.userThirdParty = -- TODO: need translate!
+'Add private third-party library configuration file paths here, please refer to the built-in [configuration file path](https://github.com/LuaLS/lua-language-server/tree/master/meta/3rd)'
+config.workspace.supportScheme = -- TODO: need translate!
+'Provide language server for the Lua files of the following scheme.'
+config.completion.enable = -- TODO: need translate!
+'Enable completion.'
+config.completion.callSnippet = -- TODO: need translate!
+'Shows function call snippets.'
+config.completion.callSnippet.Disable = -- TODO: need translate!
+"Only shows `function name`."
+config.completion.callSnippet.Both = -- TODO: need translate!
+"Shows `function name` and `call snippet`."
+config.completion.callSnippet.Replace = -- TODO: need translate!
+"Only shows `call snippet.`"
+config.completion.keywordSnippet = -- TODO: need translate!
+'Shows keyword syntax snippets.'
+config.completion.keywordSnippet.Disable = -- TODO: need translate!
+"Only shows `keyword`."
+config.completion.keywordSnippet.Both = -- TODO: need translate!
+"Shows `keyword` and `syntax snippet`."
+config.completion.keywordSnippet.Replace = -- TODO: need translate!
+"Only shows `syntax snippet`."
+config.completion.displayContext = -- TODO: need translate!
+"Previewing the relevant code snippet of the suggestion may help you understand the usage of the suggestion. The number set indicates the number of intercepted lines in the code fragment. If it is set to `0`, this feature can be disabled."
+config.completion.workspaceWord = -- TODO: need translate!
+"Whether the displayed context word contains the content of other files in the workspace."
+config.completion.showWord = -- TODO: need translate!
+"Show contextual words in suggestions."
+config.completion.showWord.Enable = -- TODO: need translate!
+"Always show context words in suggestions."
+config.completion.showWord.Fallback = -- TODO: need translate!
+"Contextual words are only displayed when suggestions based on semantics cannot be provided."
+config.completion.showWord.Disable = -- TODO: need translate!
+"Do not display context words."
+config.completion.autoRequire = -- TODO: need translate!
+"When the input looks like a file name, automatically `require` this file."
+config.completion.showParams = -- TODO: need translate!
+"Display parameters in completion list. When the function has multiple definitions, they will be displayed separately."
+config.completion.requireSeparator = -- TODO: need translate!
+"The separator used when `require`."
+config.completion.postfix = -- TODO: need translate!
+"The symbol used to trigger the postfix suggestion."
+config.color.mode = -- TODO: need translate!
+"Color mode."
+config.color.mode.Semantic = -- TODO: need translate!
+"Semantic color. You may need to set `editor.semanticHighlighting.enabled` to `true` to take effect."
+config.color.mode.SemanticEnhanced = -- TODO: need translate!
+"Enhanced semantic color. Like `Semantic`, but with additional analysis which might be more computationally expensive."
+config.color.mode.Grammar = -- TODO: need translate!
+"Grammar color."
+config.semantic.enable = -- TODO: need translate!
+"Enable semantic color. You may need to set `editor.semanticHighlighting.enabled` to `true` to take effect."
+config.semantic.variable = -- TODO: need translate!
+"Semantic coloring of variables/fields/parameters."
+config.semantic.annotation = -- TODO: need translate!
+"Semantic coloring of type annotations."
+config.semantic.keyword = -- TODO: need translate!
+"Semantic coloring of keywords/literals/operators. You only need to enable this feature if your editor cannot do syntax coloring."
+config.signatureHelp.enable = -- TODO: need translate!
+"Enable signature help."
+config.hover.enable = -- TODO: need translate!
+"Enable hover."
+config.hover.viewString = -- TODO: need translate!
+"Hover to view the contents of a string (only if the literal contains an escape character)."
+config.hover.viewStringMax = -- TODO: need translate!
+"The maximum length of a hover to view the contents of a string."
+config.hover.viewNumber = -- TODO: need translate!
+"Hover to view numeric content (only if literal is not decimal)."
+config.hover.fieldInfer = -- TODO: need translate!
+"When hovering to view a table, type infer will be performed for each field. When the accumulated time of type infer reaches the set value (MS), the type infer of subsequent fields will be skipped."
+config.hover.previewFields = -- TODO: need translate!
+"When hovering to view a table, limits the maximum number of previews for fields."
+config.hover.enumsLimit = -- TODO: need translate!
+"When the value corresponds to multiple types, limit the number of types displaying."
+config.hover.expandAlias = -- TODO: need translate!
+[[
+Whether to expand the alias. For example, expands `---@alias myType boolean|number` appears as `boolean|number`, otherwise it appears as `myType'.
+]]
+config.develop.enable = -- TODO: need translate!
+'Developer mode. Do not enable, performance will be affected.'
+config.develop.debuggerPort = -- TODO: need translate!
+'Listen port of debugger.'
+config.develop.debuggerWait = -- TODO: need translate!
+'Suspend before debugger connects.'
+config.intelliSense.searchDepth = -- TODO: need translate!
+'Set the search depth for IntelliSense. Increasing this value increases accuracy, but decreases performance. Different workspace have different tolerance for this setting. Please adjust it to the appropriate value.'
+config.intelliSense.fastGlobal = -- TODO: need translate!
+'In the global variable completion, and view `_G` suspension prompt. This will slightly reduce the accuracy of type speculation, but it will have a significant performance improvement for projects that use a lot of global variables.'
+config.window.statusBar = -- TODO: need translate!
+'Show extension status in status bar.'
+config.window.progressBar = -- TODO: need translate!
+'Show progress bar in status bar.'
+config.hint.enable = -- TODO: need translate!
+'Enable inlay hint.'
+config.hint.paramType = -- TODO: need translate!
+'Show type hints at the parameter of the function.'
+config.hint.setType = -- TODO: need translate!
+'Show hints of type at assignment operation.'
+config.hint.paramName = -- TODO: need translate!
+'Show hints of parameter name at the function call.'
+config.hint.paramName.All = -- TODO: need translate!
+'All types of parameters are shown.'
+config.hint.paramName.Literal = -- TODO: need translate!
+'Only literal type parameters are shown.'
+config.hint.paramName.Disable = -- TODO: need translate!
+'Disable parameter hints.'
+config.hint.arrayIndex = -- TODO: need translate!
+'Show hints of array index when constructing a table.'
+config.hint.arrayIndex.Enable = -- TODO: need translate!
+'Show hints in all tables.'
+config.hint.arrayIndex.Auto = -- TODO: need translate!
+'Show hints only when the table is greater than 3 items, or the table is a mixed table.'
+config.hint.arrayIndex.Disable = -- TODO: need translate!
+'Disable hints of array index.'
+config.hint.await = -- TODO: need translate!
+'If the called function is marked `---@async`, prompt `await` at the call.'
+config.hint.awaitPropagate = -- TODO: need translate!
+'Enable the propagation of `await`. When a function calls a function marked `---@async`,\z
+it will be automatically marked as `---@async`.'
+config.hint.semicolon = -- TODO: need translate!
+'If there is no semicolon at the end of the statement, display a virtual semicolon.'
+config.hint.semicolon.All = -- TODO: need translate!
+'All statements display virtual semicolons.'
+config.hint.semicolon.SameLine = -- TODO: need translate!
+'When two statements are on the same line, display a semicolon between them.'
+config.hint.semicolon.Disable = -- TODO: need translate!
+'Disable virtual semicolons.'
+config.codeLens.enable = -- TODO: need translate!
+'Enable code lens.'
+config.format.enable = -- TODO: need translate!
+'Enable code formatter.'
+config.format.defaultConfig = -- TODO: need translate!
+[[
+The default format configuration. Has a lower priority than `.editorconfig` file in the workspace.
+Read [formatter docs](https://github.com/CppCXY/EmmyLuaCodeStyle/tree/master/docs) to learn usage.
+]]
+config.spell.dict = -- TODO: need translate!
+'Custom words for spell checking.'
+config.nameStyle.config = -- TODO: need translate!
+'Set name style config'
+config.telemetry.enable = -- TODO: need translate!
+[[
+Enable telemetry to send your editor information and error logs over the network. Read our privacy policy [here](https://luals.github.io/privacy/#language-server).
+]]
+config.misc.parameters = -- TODO: need translate!
+'[Command line parameters](https://github.com/LuaLS/lua-telemetry-server/tree/master/method) when starting the language server in VSCode.'
+config.misc.executablePath = -- TODO: need translate!
+'Specify the executable path in VSCode.'
+config.language.fixIndent = -- TODO: need translate!
+'(VSCode only) Fix incorrect auto-indentation, such as incorrect indentation when line breaks occur within a string containing the word "function."'
+config.language.completeAnnotation = -- TODO: need translate!
+'(VSCode only) Automatically insert "---@ " after a line break following a annotation.'
+config.type.castNumberToInteger = -- TODO: need translate!
+'Allowed to assign the `number` type to the `integer` type.'
+config.type.weakUnionCheck = -- TODO: need translate!
+[[
+Once one subtype of a union type meets the condition, the union type also meets the condition.
+
+When this setting is `false`, the `number|boolean` type cannot be assigned to the `number` type. It can be with `true`.
+]]
+config.type.weakNilCheck = -- TODO: need translate!
+[[
+When checking the type of union type, ignore the `nil` in it.
+
+When this setting is `false`, the `number|nil` type cannot be assigned to the `number` type. It can be with `true`.
+]]
+config.type.inferParamType = -- TODO: need translate!
+[[
+When a parameter type is not annotated, it is inferred from the function's call sites.
+
+When this setting is `false`, the type of the parameter is `any` when it is not annotated.
+]]
+config.type.checkTableShape = -- TODO: need translate!
+[[
+Strictly check the shape of the table.
+]]
+config.doc.privateName = -- TODO: need translate!
+'Treat specific field names as private, e.g. `m_*` means `XXX.m_id` and `XXX.m_type` are private, witch can only be accessed in the class where the definition is located.'
+config.doc.protectedName = -- TODO: need translate!
+'Treat specific field names as protected, e.g. `m_*` means `XXX.m_id` and `XXX.m_type` are protected, witch can only be accessed in the class where the definition is located and its subclasses.'
+config.doc.packageName = -- TODO: need translate!
+'Treat specific field names as package, e.g. `m_*` means `XXX.m_id` and `XXX.m_type` are package, witch can only be accessed in the file where the definition is located.'
+config.diagnostics['unused-local'] = -- TODO: need translate!
+'Enable unused local variable diagnostics.'
+config.diagnostics['unused-function'] = -- TODO: need translate!
+'Enable unused function diagnostics.'
+config.diagnostics['undefined-global'] = -- TODO: need translate!
+'Enable undefined global variable diagnostics.'
+config.diagnostics['global-in-nil-env'] = -- TODO: need translate!
+'Enable cannot use global variables ( `_ENV` is set to `nil`) diagnostics.'
+config.diagnostics['unused-label'] = -- TODO: need translate!
+'Enable unused label diagnostics.'
+config.diagnostics['unused-vararg'] = -- TODO: need translate!
+'Enable unused vararg diagnostics.'
+config.diagnostics['trailing-space'] = -- TODO: need translate!
+'Enable trailing space diagnostics.'
+config.diagnostics['redefined-local'] = -- TODO: need translate!
+'Enable redefined local variable diagnostics.'
+config.diagnostics['newline-call'] = -- TODO: need translate!
+'Enable newline call diagnostics. Is\'s raised when a line starting with `(` is encountered, which is syntactically parsed as a function call on the previous line.'
+config.diagnostics['newfield-call'] = -- TODO: need translate!
+'Enable newfield call diagnostics. It is raised when the parenthesis of a function call appear on the following line when defining a field in a table.'
+config.diagnostics['redundant-parameter'] = -- TODO: need translate!
+'Enable redundant function parameter diagnostics.'
+config.diagnostics['ambiguity-1'] = -- TODO: need translate!
+'Enable ambiguous operator precedence diagnostics. For example, the `num or 0 + 1` expression will be suggested `(num or 0) + 1` instead.'
+config.diagnostics['lowercase-global'] = -- TODO: need translate!
+'Enable lowercase global variable definition diagnostics.'
+config.diagnostics['undefined-env-child'] = -- TODO: need translate!
+'Enable undefined environment variable diagnostics. It\'s raised when `_ENV` table is set to a new literal table, but the used global variable is no longer present in the global environment.'
+config.diagnostics['duplicate-index'] = -- TODO: need translate!
+'Enable duplicate table index diagnostics.'
+config.diagnostics['empty-block'] = -- TODO: need translate!
+'Enable empty code block diagnostics.'
+config.diagnostics['redundant-value'] = -- TODO: need translate!
+'Enable the redundant values assigned diagnostics. It\'s raised during assignment operation, when the number of values is higher than the number of objects being assigned.'
+config.diagnostics['assign-type-mismatch'] = -- TODO: need translate!
+'Enable diagnostics for assignments in which the value\'s type does not match the type of the assigned variable.'
+config.diagnostics['await-in-sync'] = -- TODO: need translate!
+'Enable diagnostics for calls of asynchronous functions within a synchronous function.'
+config.diagnostics['cast-local-type'] = -- TODO: need translate!
+'Enable diagnostics for casts of local variables where the target type does not match the defined type.'
+config.diagnostics['cast-type-mismatch'] = -- TODO: need translate!
+'Enable diagnostics for casts where the target type does not match the initial type.'
+config.diagnostics['circular-doc-class'] = -- TODO: need translate!
+'Enable diagnostics for two classes inheriting from each other introducing a circular relation.'
+config.diagnostics['close-non-object'] = -- TODO: need translate!
+'Enable diagnostics for attempts to close a variable with a non-object.'
+config.diagnostics['code-after-break'] = -- TODO: need translate!
+'Enable diagnostics for code placed after a break statement in a loop.'
+config.diagnostics['codestyle-check'] = -- TODO: need translate!
+'Enable diagnostics for incorrectly styled lines.'
+config.diagnostics['count-down-loop'] = -- TODO: need translate!
+'Enable diagnostics for `for` loops which will never reach their max/limit because the loop is incrementing instead of decrementing.'
+config.diagnostics['deprecated'] = -- TODO: need translate!
+'Enable diagnostics to highlight deprecated API.'
+config.diagnostics['different-requires'] = -- TODO: need translate!
+'Enable diagnostics for files which are required by two different paths.'
+config.diagnostics['discard-returns'] = -- TODO: need translate!
+'Enable diagnostics for calls of functions annotated with `---@nodiscard` where the return values are ignored.'
+config.diagnostics['doc-field-no-class'] = -- TODO: need translate!
+'Enable diagnostics to highlight a field annotation without a defining class annotation.'
+config.diagnostics['duplicate-doc-alias'] = -- TODO: need translate!
+'Enable diagnostics for a duplicated alias annotation name.'
+config.diagnostics['duplicate-doc-field'] = -- TODO: need translate!
+'Enable diagnostics for a duplicated field annotation name.'
+config.diagnostics['duplicate-doc-param'] = -- TODO: need translate!
+'Enable diagnostics for a duplicated param annotation name.'
+config.diagnostics['duplicate-set-field'] = -- TODO: need translate!
+'Enable diagnostics for setting the same field in a class more than once.'
+config.diagnostics['incomplete-signature-doc'] = -- TODO: need translate!
+'Incomplete @param or @return annotations for functions.'
+config.diagnostics['invisible'] = -- TODO: need translate!
+'Enable diagnostics for accesses to fields which are invisible.'
+config.diagnostics['missing-global-doc'] = -- TODO: need translate!
+'Missing annotations for globals! Global functions must have a comment and annotations for all parameters and return values.'
+config.diagnostics['missing-local-export-doc'] = -- TODO: need translate!
+'Missing annotations for exported locals! Exported local functions must have a comment and annotations for all parameters and return values.'
+config.diagnostics['missing-parameter'] = -- TODO: need translate!
+'Enable diagnostics for function calls where the number of arguments is less than the number of annotated function parameters.'
+config.diagnostics['missing-return'] = -- TODO: need translate!
+'Enable diagnostics for functions with return annotations which have no return statement.'
+config.diagnostics['missing-return-value'] = -- TODO: need translate!
+'Enable diagnostics for return statements without values although the containing function declares returns.'
+config.diagnostics['need-check-nil'] = -- TODO: need translate!
+'Enable diagnostics for variable usages if `nil` or an optional (potentially `nil`) value was assigned to the variable before.'
+config.diagnostics['unnecessary-assert'] = -- TODO: need translate!
+'Enable diagnostics for redundant assertions on truthy values.'
+config.diagnostics['no-unknown'] = -- TODO: need translate!
+'Enable diagnostics for cases in which the type cannot be inferred.'
+config.diagnostics['not-yieldable'] = -- TODO: need translate!
+'Enable diagnostics for calls to `coroutine.yield()` when it is not permitted.'
+config.diagnostics['param-type-mismatch'] = -- TODO: need translate!
+'Enable diagnostics for function calls where the type of a provided parameter does not match the type of the annotated function definition.'
+config.diagnostics['redundant-return'] = -- TODO: need translate!
+'Enable diagnostics for return statements which are not needed because the function would exit on its own.'
+config.diagnostics['redundant-return-value']= -- TODO: need translate!
+'Enable diagnostics for return statements which return an extra value which is not specified by a return annotation.'
+config.diagnostics['return-type-mismatch'] = -- TODO: need translate!
+'Enable diagnostics for return values whose type does not match the type declared in the corresponding return annotation.'
+config.diagnostics['spell-check'] = -- TODO: need translate!
+'Enable diagnostics for typos in strings.'
+config.diagnostics['name-style-check'] = -- TODO: need translate!
+'Enable diagnostics for name style.'
+config.diagnostics['unbalanced-assignments']= -- TODO: need translate!
+'Enable diagnostics on multiple assignments if not all variables obtain a value (e.g., `local x,y = 1`).'
+config.diagnostics['undefined-doc-class'] = -- TODO: need translate!
+'Enable diagnostics for class annotations in which an undefined class is referenced.'
+config.diagnostics['undefined-doc-name'] = -- TODO: need translate!
+'Enable diagnostics for type annotations referencing an undefined type or alias.'
+config.diagnostics['undefined-doc-param'] = -- TODO: need translate!
+'Enable diagnostics for cases in which a parameter annotation is given without declaring the parameter in the function definition.'
+config.diagnostics['undefined-field'] = -- TODO: need translate!
+'Enable diagnostics for cases in which an undefined field of a variable is read.'
+config.diagnostics['unknown-cast-variable'] = -- TODO: need translate!
+'Enable diagnostics for casts of undefined variables.'
+config.diagnostics['unknown-diag-code'] = -- TODO: need translate!
+'Enable diagnostics in cases in which an unknown diagnostics code is entered.'
+config.diagnostics['unknown-operator'] = -- TODO: need translate!
+'Enable diagnostics for unknown operators.'
+config.diagnostics['unreachable-code'] = -- TODO: need translate!
+'Enable diagnostics for unreachable code.'
+config.diagnostics['global-element'] = -- TODO: need translate!
+'Enable diagnostics to warn about global elements.'
+config.typeFormat.config = -- TODO: need translate!
+'Configures the formatting behavior while typing Lua code.'
+config.typeFormat.config.auto_complete_end = -- TODO: need translate!
+'Controls if `end` is automatically completed at suitable positions.'
+config.typeFormat.config.auto_complete_table_sep = -- TODO: need translate!
+'Controls if a separator is automatically appended at the end of a table declaration.'
+config.typeFormat.config.format_line = -- TODO: need translate!
+'Controls if a line is formatted at all.'
+
+command.exportDocument = -- TODO: need translate!
+'Lua: Export Document ...'
+command.addon_manager.open = -- TODO: need translate!
+'Lua: Open Addon Manager ...'
+command.reloadFFIMeta = -- TODO: need translate!
+'Lua: Reload luajit ffi meta'
+command.startServer = -- TODO: need translate!
+'Lua: Restart Language Server'
+command.stopServer = -- TODO: need translate!
+'Lua: Stop Language Server'
diff --git a/nvim/mason/packages/lua-language-server/libexec/locale/pt-br/meta.lua b/nvim/mason/packages/lua-language-server/libexec/locale/pt-br/meta.lua
new file mode 100644
index 0000000..ddd81ce
--- /dev/null
+++ b/nvim/mason/packages/lua-language-server/libexec/locale/pt-br/meta.lua
@@ -0,0 +1,764 @@
+---@diagnostic disable: undefined-global, lowercase-global
+
+arg =
+'Argumentos de inicialização para a versão standalone da linguagem Lua.'
+
+assert =
+'Emite um erro se o valor de seu argumento v for falso (i.e., `nil` ou `false`); caso contrário, devolve todos os seus argumentos. Em caso de erro, `message` é o objeto de erro que, quando ausente, por padrão é `"assertion failed!"`'
+
+cgopt.collect =
+'Realiza um ciclo completo de coleta de lixo (i.e., garbage-collection cycle).'
+cgopt.stop =
+'Interrompe a execução automática.'
+cgopt.restart =
+'Reinicia a execução automática.'
+cgopt.count =
+'Retorna, em Kbytes, a quantidade total de memória utilizada pela linguagem Lua.'
+cgopt.step =
+'Executa a coleta de lixo (i.e., garbage-collection) em uma única etapa. A quantidade de execuções por etapa é controlada via `arg`.'
+cgopt.setpause =
+'Estabelece pausa. Defina via `arg` o intervalo de pausa do coletor de lixo (i.e., garbage-collection).'
+cgopt.setstepmul =
+'Estabelece um multiplicador para etapa de coleta de lixo (i.e., garbage-collection). Defina via `arg` o valor multiplicador.'
+cgopt.incremental =
+'Altera o modo do coletor para incremental.'
+cgopt.generational =
+'Altera o modo do coletor para geracional.'
+cgopt.isrunning =
+'Retorna um valor booleano indicando se o coletor de lixo (i.e., garbage-collection) está em execução.'
+
+collectgarbage =
+'Esta função é uma interface genérica para o coletor de lixo (i.e., garbage-collection). Ela executa diferentes funções de acordo com seu primeiro argumento, `opt`.'
+
+dofile =
+'Abre o arquivo fornecido por argumento e executa seu conteúdo como código Lua. Quando chamado sem argumentos, `dofile` executa o conteúdo da entrada padrão (`stdin`). Retorna todos os valores retornados pelo trecho de código contido no arquivo. Em caso de erros, o `dofile` propaga o erro para seu chamador. Ou seja, o `dofile` não funciona em modo protegido.'
+
+error =
+[[
+Termina a última chamada de função protegida e retorna `message` como objeto de `erro`.
+
+Normalmente, o 'erro' adiciona algumas informações sobre a localização do erro no inÃcio da mensagem, quando a mensagem for uma string.
+]]
+
+_G =
+'Uma variável global (não uma função) que detém o ambiente global (ver §2.2). Lua em si não usa esta variável; mudar seu valor não afeta nenhum ambiente e vice-versa.'
+
+getfenv =
+'Retorna o ambiente atual em uso pela função. O `f` pode ser uma função Lua ou um número que especifica a função naquele nÃvel de pilha.'
+
+getmetatable =
+'Se o objeto não tiver uma metatable, o retorno é `nil`. Mas caso a metatable do objeto tenha um campo `__metatable`, é retornado o valor associado. Caso contrário, retorna a metatable do objeto dado.'
+
+ipairs =
+[[
+Retorna três valores (uma função iteradora, a tabela `t`, e `0`) para que a seguinte construção
+```lua
+ for i,v in ipairs(t) do body end
+```
+possa iterar sobre os pares de valor-chave `(1,t[1]), (2,t[2]), ...`, até o primeiro Ãndice ausente.
+]]
+
+loadmode.b =
+'Somente blocos binários.'
+loadmode.t =
+'Somente blocos de texto.'
+loadmode.bt =
+'Tanto binário quanto texto.'
+
+load['<5.1'] =
+'Carrega um bloco utilizando a função `func` para obter suas partes. Cada chamada para o `func` deve retornar uma string que é concatenada com os resultados anteriores.'
+load['>5.2'] =
+[[
+Carrega um bloco.
+
+Se o bloco (i.e., `chunk`) é uma string, o bloco é essa string. Se o bloco é uma função, a função "load" é chamada repetidamente para obter suas partes. Cada chamada para o bloco deve retornar uma string que é concatenada com os resultados anteriores. O fim do bloco é sinalizado com o retorno de uma string vazia ou `nil`.
+]]
+
+loadfile =
+'Carrega um bloco de arquivo `filename` ou da entrada padrão, se nenhum nome de arquivo for dado.'
+
+loadstring =
+'Carrega um bloco a partir de uma string dada.'
+
+module =
+'Cria um módulo.'
+
+next =
+[[
+Permite que um programa percorra todos os campos de uma tabela. Seu primeiro argumento é uma tabela e seu segundo argumento é um Ãndice nesta tabela. Uma chamada `next` retorna o próximo Ãndice da tabela e seu valor associado. Quando chamado usando `nil` como segundo argumento, `next` retorna um Ãndice inicial e seu valor associado. Quando chamado com o último Ãndice, ou com `nil` em uma tabela vazia, o `next` retorna o `nil`. Se o segundo argumento estiver ausente, então é interpretado como `nil`. Portanto, pode-se utilizar o `next(t)` para verificar se uma tabela está vazia.
+
+A ordem na qual os Ãndices são enumerados não é especificada, *mesmo para Ãndices numéricos*. (Para percorrer uma tabela em ordem numérica, utilize um `for`).
+
+O comportamento do `next` é indefinido se, durante a iteração/travessia, você atribuir qualquer valor a um campo inexistente na tabela. Você pode, entretanto, modificar os campos existentes e pode, inclusive, os definir como nulos.
+]]
+
+pairs =
+[[
+Se `t` tem um "meta" método (i.e., metamethod) `__pairs`, a chamada é feita usando t como argumento e retorna os três primeiros resultados.
+
+Caso contrário, retorna três valores: a função $next, a tabela `t` e `nil`, para que a seguinte construção
+```lua
+ for k,v in pairs(t) do body end
+```
+possa iterar sobre todos os pares de valor-chave da tabela 't'.
+
+Veja a função $next para saber as ressalvas em modificar uma tabela durante sua iteração.
+]]
+
+pcall =
+[[
+Chama a função `f` com os argumentos dados em modo *protegido*. Isto significa que qualquer erro dentro de `f` não é propagado; em vez disso, o `pcall` captura o erro e retorna um código de status. Seu primeiro resultado é o código de status (booleano), que é verdadeiro se a chamada for bem sucedida sem erros. Neste caso, `pcall' também retorna todos os resultados da chamada, após este primeiro resultado. Em caso de qualquer erro, `pcall` retorna `false` mais o objeto de erro.
+]]
+
+print =
+[[
+Recebe qualquer número de argumentos e imprime seus valores na saÃda padrão `stdout`, convertendo cada argumento em uma string seguindo as mesmas regras do $tostring.
+A função `print` não é destinada à saÃda formatada, mas apenas como uma forma rápida de mostrar um valor, por exemplo, para debugging. Para controle completo sobre a saÃda, use $string.format e $io.write.
+]]
+
+rawequal =
+'Verifica se v1 é igual a v2, sem invocar a metatable `__eq`.'
+
+rawget =
+'Obtém o valor real de `table[index]`, sem invocar a metatable `__index`.'
+
+rawlen =
+'Retorna o comprimento do objeto `v`, sem invocar a metatable `__len`.'
+
+rawset =
+[[
+Define o valor real de `table[index]` para `value`, sem utilizar o metavalue `__newindex`. `table` deve ser uma tabela, `index` qualquer valor diferente de `nil` e `NaN`, e `value` qualquer valor de tipos do Lua.
+Esta função retorna uma `table`.
+]]
+
+select =
+'Se `index` é um número, retorna todos os argumentos após o número do argumento `index`; um número negativo de Ãndices do final (`-1` é o último argumento). Caso contrário, `index` deve ser a string `"#"`, e `select` retorna o número total de argumentos extras dados.'
+
+setfenv =
+'Define o ambiente a ser utilizado pela função em questão.'
+
+setmetatable =
+[[
+Define a metatable para a tabela dada. Se `metatabela` for `nil`, remove a metatable da tabela em questão. Se a metatable original tiver um campo `__metatable', um erro é lançado.
+
+Esta função retorna uma `table`.
+
+Para alterar a metatable de outros tipos do código Lua, você deve utilizar a biblioteca de debugging (§6.10).
+]]
+
+tonumber =
+[[
+Quando chamado sem a base, `tonumber` tenta converter seu argumento para um número. Se o argumento já for um número ou uma string numérica, então `tonumber` retorna este número; caso contrário, retorna `fail`.
+
+A conversão de strings pode resultar em números inteiros ou de ponto flutuante, de acordo com as convenções lexicais de Lua (ver §3.1). A string pode ter espaços antes e depois e um sinal.
+]]
+
+tostring =
+[[
+Recebe um valor de qualquer tipo e o converte em uma string em formato legÃvel por humanos.
+
+Se a metatable de `v` tem um campo `__tostring', então `tostring' chama o valor correspondente usando `v` como argumento, e utiliza o resultado da chamada como seu resultado. Caso contrário, se a metatable de `v` tiver um campo `__name` com um valor do tipo string, `tostring` pode utilizar essa string em seu resultado final.
+
+Para controle completo de como os números são convertidos, utilize $string.format.
+]]
+
+type =
+[[
+Retorna o tipo de seu único argumento, codificado como uma string. Os resultados possÃveis desta função são `"nil"` (uma string, não o valor `nil`), `"number"`, `"string"`, `"boolean"`, `"table"`, `"function"`, `"thread"`, e `"userdata"`.
+]]
+
+_VERSION =
+'Uma variável global (não uma função) que contém uma string contendo a versão Lua em execução.'
+
+warn =
+'Emite um aviso com uma mensagem composta pela concatenação de todos os seus argumentos (que devem ser strings).'
+
+xpcall['=5.1'] =
+'Faz chamada a função `f` com os argumentos dados e em modo protegido, usando um manipulador de mensagens dado.'
+xpcall['>5.2'] =
+'Faz chamada a função `f` com os argumentos dados e em modo protegido, usando um manipulador de mensagens dado.'
+
+unpack =
+[[
+Retorna os elementos da lista dada. Esta função é equivalente a
+```lua
+ return list[i], list[i+1], ···, list[j]
+```
+]]
+
+bit32 =
+''
+bit32.arshift =
+[[
+Retorna o número `x` deslocado `disp` bits para a direita. Deslocamentos negativos movem os bits para a esquerda.
+
+Esta operação de deslocamento é chamada de deslocamento aritmético. Os bits vagos à esquerda são preenchidos com cópias do bit mais significativo de `x`; os bits vagos à direita são preenchidos com zeros.
+]]
+bit32.band =
+'Retorna a operação bitwise *and* de seus operandos.'
+bit32.bnot =
+[[
+Retorna a negação da operação bitwise de `x`.
+
+```lua
+assert(bit32.bnot(x) ==
+(-1 - x) % 2^32)
+```
+]]
+bit32.bor =
+'Retorna a operação bitwise *or* de seus operandos.'
+bit32.btest =
+'Retorna um valor booleano verdadeiro se a operação bitwise *and* de seus operandos for diferente de zero. Falso, caso contrário.'
+bit32.bxor =
+'Retorna a operação bitwise *exclusive or* de seus operandos.'
+bit32.extract =
+'Retorna o número formado pelos bits de `field` a `field + width - 1` de `n`, sem sinal.'
+bit32.replace =
+'Retorna uma cópia de `n` com os bits de `field` a `field + width - 1` substituÃdos pelo valor `v` .'
+bit32.lrotate =
+'Retorna o número `x` rotacionado `disp` bits para a esquerda. Rotações negativos movem os bits para a direita. '
+bit32.lshift =
+[[
+Retorna o número `x` deslocado `disp` bits para a esquerda. Deslocamentos negativos movem os bits para a direita. Em ambas as direções, os bits vazios/vagos são preenchidos com zeros.
+
+```lua
+assert(bit32.lshift(b, disp) ==
+(b * 2^disp) % 2^32)
+```
+]]
+bit32.rrotate =
+'Retorna o número `x` rotacionado `disp` bits para a direita. Deslocamentos negativos movem os bits para a esquerda.'
+bit32.rshift =
+[[
+Retorna o número `x` deslocado `disp` bits para a direita. Deslocamentos negativos movem os bits para a esquerda. Em ambas as direções, os bits vazios são preenchidos com zeros.
+
+```lua
+assert(bit32.rshift(b, disp) ==
+math.floor(b % 2^32 / 2^disp))
+```
+]]
+
+coroutine =
+''
+coroutine.create =
+'Cria uma nova `coroutine`, a partir de uma função `f` e retorna esta coroutine como objeto do tipo `"thread"`.'
+coroutine.isyieldable =
+'Retorna verdadeiro quando a `coroutine` em execução for finalizada.'
+coroutine.isyieldable['>5.4']=
+'Retorna verdadeiro quando a `coroutine` `co` for finalizada. Por padrão `co` é uma coroutine em execução.'
+coroutine.close =
+'Finaliza a coroutine `co` , encerrando todas as variáveis pendentes e colocando a coroutine em um estado morto.'
+coroutine.resume =
+'Inicia ou continua a execução da coroutine `co`.'
+coroutine.running =
+'Retorna a `coroutine` corrente e um booleana verdadeiro quando a coroutine corrente é a principal.'
+coroutine.status =
+'Retorna o status da `coroutine `co`.'
+coroutine.wrap =
+'Cria uma nova `coroutine`, a partir de uma função `f` e retorna uma função que retorna a coroutine cada vez que ele é chamado.'
+coroutine.yield =
+'Suspende a execução da coroutine chamada.'
+
+costatus.running =
+'Está em execução.'
+costatus.suspended =
+'Está suspenso ou não foi iniciado.'
+costatus.normal =
+'Está ativo, mas não está em execução.'
+costatus.dead =
+'Terminou ou parou devido a erro'
+
+debug =
+''
+debug.debug =
+'Entra em modo interativo com o usuário, executando os comandos de entrada.'
+debug.getfenv =
+'Retorna o ambiente do objeto `o` .'
+debug.gethook =
+'Retorna as configurações do `hook` atual da `thread`.'
+debug.getinfo =
+'Retorna uma tabela com informações sobre uma função.'
+debug.getlocal['<5.1'] =
+'Retorna o nome e o valor da variável local com Ãndice `local` da função de nÃvel `level` da pilha.'
+debug.getlocal['>5.2'] =
+'Retorna o nome e o valor da variável local com Ãndice `local` da função de nÃvel `f` da pilha.'
+debug.getmetatable =
+'Retorna a `metatable` do valor dado.'
+debug.getregistry =
+'Retorna a tabela de registro.'
+debug.getupvalue =
+'Retorna o nome e o valor da variável antecedente com Ãndice `up` da função.'
+debug.getuservalue['<5.3'] =
+'Retorna o valor de Lua associado a `u` (i.e., user).'
+debug.getuservalue['>5.4'] =
+[[
+Retorna o `n`-ésimo valor de usuário associado
+aos dados do usuário `u` e um booleano,
+`false`, se nos dados do usuário não existir esse valor.
+]]
+debug.setcstacklimit =
+[[
+### **Deprecated in `Lua 5.4.2`**
+
+Estabelece um novo limite para a pilha C. Este limite controla quão profundamente as chamadas aninhadas podem ir em Lua, com a intenção de evitar um transbordamento da pilha.
+
+Em caso de sucesso, esta função retorna o antigo limite. Em caso de erro, ela retorna `false`.
+]]
+debug.setfenv =
+'Define o ambiente do `object` dado para a `table` dada .'
+debug.sethook =
+'Define a função dada como um `hook`.'
+debug.setlocal =
+'Atribui o valor `value` à variável local com Ãndice `local` da função de nÃvel `level` da pilha.'
+debug.setmetatable =
+'Define a `metatable` com o valor dado para tabela dada (que pode ser `nil`).'
+debug.setupvalue =
+'Atribui `value` a variável antecedente com Ãndice `up` da função.'
+debug.setuservalue['<5.3'] =
+'Define o valor dado como o valor Lua associado ao `udata` (i.e., user data).'
+debug.setuservalue['>5.4'] =
+[[
+Define o valor dado como
+o `n`-ésimo valor de usuário associado ao `udata` (i.e., user data).
+O `udata` deve ser um dado de usuário completo.
+]]
+debug.traceback =
+'Retorna uma string com um `traceback` de chamadas. A string de mensagen (opcional) é anexada no inÃcio do traceback.'
+debug.upvalueid =
+'Retorna um identificador único (como um dado de usuário leve) para o valor antecedente de numero `n` da função dada.'
+debug.upvaluejoin =
+'Faz o `n1`-ésimo valor da função `f1` (i.e., closure Lua) referir-se ao `n2`-ésimo valor da função `f2`.'
+
+infowhat.n =
+'`name` e `namewhat`'
+infowhat.S =
+'`source`, `short_src`, `linedefined`, `lastlinedefined` e `what`'
+infowhat.l =
+'`currentline`'
+infowhat.t =
+'`istailcall`'
+infowhat.u['<5.1'] =
+'`nups`'
+infowhat.u['>5.2'] =
+'`nups`, `nparams` e `isvararg`'
+infowhat.f =
+'`func`'
+infowhat.r =
+'`ftransfer` e `ntransfer`'
+infowhat.L =
+'`activelines`'
+
+hookmask.c =
+'Faz chamada a um `hook` quando o Lua chama uma função.'
+hookmask.r =
+'Faz chamada a um `hook` quando o retorno de uma função é executado.'
+hookmask.l =
+'Faz chamada a um `hook` quando encontra nova linha de código.'
+
+file =
+''
+file[':close'] =
+'Fecha o arquivo `file`.'
+file[':flush'] =
+'Salva qualquer dado de entrada no arquivo `file`.'
+file[':lines'] =
+[[
+------
+```lua
+for c in file:lines(...) do
+ body
+end
+```
+]]
+file[':read'] =
+'Lê o arquivo de acordo com o formato fornecido e que especifica o que deve ser lido.'
+file[':seek'] =
+'Define e obtém a posição do arquivo, medida a partir do inÃcio do arquivo.'
+file[':setvbuf'] =
+'Define o modo de `buffer` para um arquivo de saÃda.'
+file[':write'] =
+'Escreve o valor de cada um de seus argumentos no arquivo.'
+
+readmode.n =
+'Lê um numeral e o devolve como número.'
+readmode.a =
+'Lê o arquivo completo.'
+readmode.l =
+'Lê a próxima linha pulando o final da linha.'
+readmode.L =
+'Lê a próxima linha mantendo o final da linha.'
+
+seekwhence.set =
+'O cursor base é o inÃcio do arquivo.'
+seekwhence.cur =
+'O cursor base é a posição atual.'
+seekwhence['.end'] =
+'O cursor base é o final do arquivo.'
+
+vbuf.no =
+'A saÃda da operação aparece imediatamente.'
+vbuf.full =
+'Realizado apenas quando o `buffer` está cheio.'
+vbuf.line =
+'`Buffered` até que uma nova linha seja encontrada.'
+
+io =
+''
+io.stdin =
+'Entrada padrão.'
+io.stdout =
+'SaÃda padrão.'
+io.stderr =
+'Erro padrão.'
+io.close =
+'Fecha o arquivo dado ou o arquivo de saÃda padrão.'
+io.flush =
+'Salva todos os dados gravados no arquivo de saÃda padrão.'
+io.input =
+'Define o arquivo de entrada padrão.'
+io.lines =
+[[
+------
+```lua
+for c in io.lines(filename, ...) do
+ body
+end
+```
+]]
+io.open =
+'Abre um arquivo no modo especificado pela *string* `mode`.'
+io.output =
+'Define o arquivo de saÃda padrão.'
+io.popen =
+'Inicia o programa dado em um processo separado.'
+io.read =
+'Lê o arquivo de acordo com o formato fornecido e que especifica o que deve ser lido.'
+io.tmpfile =
+'Em caso de sucesso, retorna um `handler` para um arquivo temporário.'
+io.type =
+'Verifica se `obj` é um identificador de arquivo válido.'
+io.write =
+'Escreve o valor de cada um dos seus argumentos para o arquivo de saÃda padrão.'
+
+openmode.r =
+'Modo de leitura.'
+openmode.w =
+'Modo de escrita.'
+openmode.a =
+'Modo de anexação.'
+openmode['.r+'] =
+'Modo de atualização, todos os dados anteriores são preservados.'
+openmode['.w+'] =
+'Modo de atualização, todos os dados anteriores são apagados.'
+openmode['.a+'] =
+'Modo de anexação e atualização, os dados anteriores são preservados, a escrita só é permitida no final do arquivo.'
+openmode.rb =
+'Modo de leitura. (em modo binário)'
+openmode.wb =
+'Modo de escrita. (em modo binário)'
+openmode.ab =
+'Modo de anexação. (em modo binário)'
+openmode['.r+b'] =
+'Modo de atualização, todos os dados anteriores são preservados. (em modo binário)'
+openmode['.w+b'] =
+'Modo de atualização, todos os dados anteriores são apagados. (em modo binário)'
+openmode['.a+b'] =
+'Modo de anexação e atualização, todos os dados anteriores são preservados, a escrita só é permitida no final do arquivo. (em modo binário)'
+
+popenmode.r =
+'Leia dados deste programa pelo arquivo.'
+popenmode.w =
+'Escreva dados neste programa pelo arquivo.'
+
+filetype.file =
+'`handler` para arquivo aberto.'
+filetype['.closed file'] =
+'`handler` para arquivo fechado.'
+filetype['.nil'] =
+'Não é um `handler` de arquivo'
+
+math =
+''
+math.abs =
+'Retorna o valor absoluto de `x`.'
+math.acos =
+'Retorna o arco cosseno de `x` (em radianos).'
+math.asin =
+'Retorna o arco seno de `x` (em radianos).'
+math.atan['<5.2'] =
+'Retorna o arco tangente de `x` (em radianos).'
+math.atan['>5.3'] =
+'Retorna o arco tangente de `y/x` (em radianos).'
+math.atan2 =
+'Retorna o arco tangente de `y/x` (em radianos).'
+math.ceil =
+'Retorna o menor valor inteiro maior ou igual a `x`.'
+math.cos =
+'Retorna o cosseno de `x` (requer valor em radianos).'
+math.cosh =
+'Retorna o cosseno hiperbólico de `x` (requer valor em radianos).'
+math.deg =
+'Converte o ângulo `x` de radianos para graus.'
+math.exp =
+'Retorna o valor `e^x` (onde `e` é a base do logaritmo natural).'
+math.floor =
+'Retorna o maior valor inteiro menor ou igual a `x`.'
+math.fmod =
+'Retorna o resto da divisão de `x` por `y` que arredonda o quociente para zero.'
+math.frexp =
+'Decompõe `x` em fatores e expoentes. Retorna `m` e `e` tal que `x = m * (2 ^ e)` é um inteiro e o valor absoluto de `m` está no intervalo [0,5, 1) (ou zero quando `x` é zero).'
+math.huge =
+'Um valor maior que qualquer outro valor numérico.'
+math.ldexp =
+'Retorna `m * (2 ^ e)`.'
+math.log['<5.1'] =
+'Retorna o logaritmo natural de `x`.'
+math.log['>5.2'] =
+'Retorna o logaritmo de `x` na base dada.'
+math.log10 =
+'Retorna o logaritmo `x` na base 10.'
+math.max =
+'Retorna o argumento com o valor máximo de acordo com o operador `<`.'
+math.maxinteger['>5.3'] =
+'Retorna o valor máximo para um inteiro.'
+math.min =
+'Retorna o argumento com o valor mÃnimo de acordo com o operador `<`.'
+math.mininteger['>5.3'] =
+'Retorna o valor mÃnimo para um inteiro.'
+math.modf =
+'Retorna a parte inteira e a parte fracionária de `x`.'
+math.pi =
+'O valor de *Ï€*.'
+math.pow =
+'Retorna `x ^ y`.'
+math.rad =
+'Converte o ângulo `x` de graus para radianos.'
+math.random =
+[[
+* `math.random()`: Retorna um valor real (i.e., ponto flutuante) no intervalo [0,1).
+* `math.random(n)`: Retorna um inteiro no intervalo [1, n].
+* `math.random(m, n)`: Retorna um inteiro no intervalo [m, n].
+]]
+math.randomseed['<5.3'] =
+'Define `x` como valor semente (i.e., `seed`) para a função geradora de números pseudo-aleatória.'
+math.randomseed['>5.4'] =
+[[
+* `math.randomseed(x, y)`: Concatena `x` e `y` em um espaço de 128-bits que é usado como valor semente (`seed`) para reinicializar o gerador de números pseudo-aleatório.
+* `math.randomseed(x)`: Equivale a `math.randomseed(x, 0)` .
+* `math.randomseed()`: Gera um valor semente (i.e., `seed`) com fraca probabilidade de aleatoriedade.
+]]
+math.sin =
+'Retorna o seno de `x` (requer valor em radianos).'
+math.sinh =
+'Retorna o seno hiperbólico de `x` (requer valor em radianos).'
+math.sqrt =
+'Retorna a raiz quadrada de `x`.'
+math.tan =
+'Retorna a tangente de `x` (requer valor em radianos).'
+math.tanh =
+'Retorna a tangente hiperbólica de `x` (requer valor em radianos).'
+math.tointeger['>5.3'] =
+'Se o valor `x` pode ser convertido para um inteiro, retorna esse inteiro.'
+math.type['>5.3'] =
+'Retorna `"integer"` se `x` é um inteiro, `"float"` se for um valor real (i.e., ponto flutuante), ou `nil` se `x` não é um número.'
+math.ult['>5.3'] =
+'Retorna `true` se e somente se `m` é menor `n` quando eles são comparados como inteiros sem sinal.'
+
+os =
+''
+os.clock =
+'Retorna uma aproximação do valor, em segundos, do tempo de CPU usado pelo programa.'
+os.date =
+'Retorna uma string ou uma tabela contendo data e hora, formatada de acordo com a string `format` fornecida.'
+os.difftime =
+'Retorna a diferença, em segundos, do tempo `t1` para o tempo` t2`.'
+os.execute =
+'Passa `command` para ser executado por um `shell` do sistema operacional.'
+os.exit['<5.1'] =
+'Chama a função `exit` do C para encerrar o programa.'
+os.exit['>5.2'] =
+'Chama a função `exit` do ISO C para encerrar o programa.'
+os.getenv =
+'Retorna o valor da variável de ambiente de processo `varname`.'
+os.remove =
+'Remove o arquivo com o nome dado.'
+os.rename =
+'Renomeia o arquivo ou diretório chamado `oldname` para `newname`.'
+os.setlocale =
+'Define a localidade atual do programa.'
+os.time =
+'Retorna a hora atual quando chamada sem argumentos, ou um valor representando a data e a hora local especificados pela tabela fornecida.'
+os.tmpname =
+'Retorna uma string com um nome de arquivo que pode ser usado como arquivo temporário.'
+
+osdate.year =
+'Quatro dÃgitos.'
+osdate.month =
+'1-12'
+osdate.day =
+'1-31'
+osdate.hour =
+'0-23'
+osdate.min =
+'0-59'
+osdate.sec =
+'0-61'
+osdate.wday =
+'Dia da semana, 1–7, Domingo é 1'
+osdate.yday =
+'Dia do ano, 1–366'
+osdate.isdst =
+'Bandeira para indicar horário de verão (i.e., `Daylight Saving Time`), um valor booleano.'
+
+package =
+''
+
+require['<5.3'] =
+'Carrega o módulo fornecido e retorna qualquer valor retornado pelo módulo (`true` quando `nil`).'
+require['>5.4'] =
+'Carrega o módulo fornecido e retorna qualquer valor retornado pelo pesquisador (`true` quando `nil`). Além desse valor, também retorna como segundo resultado um carregador de dados retornados pelo pesquisador, o que indica como `require` encontrou o módulo. (Por exemplo, se o módulo vier de um arquivo, este carregador de dados é o caminho do arquivo.)'
+
+package.config =
+'string descrevendo configurações a serem utilizadas durante a compilação de pacotes.'
+package.cpath =
+'O caminho usado pelo `require` para procurar pelo carregador C.'
+package.loaded =
+'Uma tabela usada pelo `require` para controlar quais módulos já estão carregados.'
+package.loaders =
+'Uma tabela usada pelo `require` para controlar como carregar módulos.'
+package.loadlib =
+'Dinamicamente vincula o programa no `host` com a biblioteca C `libname`.'
+package.path =
+'O caminho usado pelo `require` para procurar por um carregador Lua.'
+package.preload =
+'Uma tabela para armazenar carregadores de módulos especÃficos.'
+package.searchers =
+'Uma tabela usada pelo `require` para controlar como buscar módulos.'
+package.searchpath =
+'Procura por `name` em `path`.'
+package.seeall =
+'Define uma `metatable` `module` com o campo `__index` referenciando o ambiente global, para que este módulo herde valores do ambiente global. Para ser usado como uma opção a função `module`.'
+
+string =
+''
+string.byte =
+'Retorna os códigos numéricos internos dos caracteres `s[i], s[i+1], ..., s[j]`.'
+string.char =
+'Retorna uma string com comprimento igual ao número de argumentos, no qual cada caractere possui o código numérico interno igual ao seu argumento correspondente.'
+string.dump =
+'Retorna uma string contendo uma representação binária (i.e., *binary chunk*) da função dada.'
+string.find =
+'Procura a primeira correspondencia de `pattern` (veja §6.4.1) na string.'
+string.format =
+'Retorna uma versão formatada de seu número variável de argumentos após a descrição dada em seu primeiro argumento.'
+string.gmatch =
+[[
+Retorna um iterator que, a cada vez que é chamado, retorna as próximas capturas de `pattern` (veja §6.4.1) sobre a string *s*.
+
+Por exemplo, o loop a seguir irá iterar em todas as palavras da string *s*, imprimindo cada palavra por linha:
+```lua
+ s =
+"hello world from Lua"
+ for w in string.gmatch(s, "%a+") do
+ print(w)
+ end
+```
+]]
+string.gsub =
+'Retorna uma cópia da *s* em que todas ou, caso fornecido, as primeiras `n` ocorrências de `pattern` (veja §6.4.1) que tiverem sido substituÃdas por uma string de substituição especificada por `repl`.'
+string.len =
+'Retorna o comprimento da string.'
+string.lower =
+'Retorna uma cópia desta string com todas as letras maiúsculas alteradas para minúsculas.'
+string.match =
+'Procura a primeira ocorrência do `pattern` (veja §6.4.1) na string.'
+string.pack =
+'Retorna uma string binária contendo os valores `V1`, `v2`, etc. empacotados (isto é, serializado de forma binário) de acordo com o formato da string `fmt` fornecida (veja §6.4.2).'
+string.packsize =
+'Retorna o tamanho de uma string resultante de `string.pack` com o formato da string `fmt` fornecida (veja §6.4.2).'
+string.rep['>5.2'] =
+'Retorna uma string que é a concatenação de `n` cópias da string `s` separadas pela string `sep`.'
+string.rep['<5.1'] =
+'Retorna uma string que é a concatenação de `n` cópias da string `s`.'
+string.reverse =
+'Retorna uma string que representa a string `s` invertida.'
+string.sub =
+'Retorna a substring da string `s` que começa no Ãndice `i` e continua até o Ãndice `j`.'
+string.unpack =
+'Retorna os valores empacotados na string de acordo com o formato da string `fmt` fornecida (veja §6.4.2).'
+string.upper =
+'Retorna uma cópia desta string com todas as letras minúsculas alteradas para maiúsculas.'
+
+table =
+''
+table.concat =
+'Dada uma lista onde todos os elementos são strings ou números, retorna a string `list[i]..sep..list[i+1] ··· sep..list[j]`.'
+table.insert =
+'Insere o elemento `value` na posição `pos` de `list`.'
+table.maxn =
+'Retorna o maior Ãndice numérico positivo da tabela fornecida ou zero se a tabela não tiver Ãndices numéricos positivos.'
+table.move =
+[[
+Move os elementos da tabela `a1` para tabela `a2`.
+```lua
+a2[t],··· =
+a1[f],···,a1[e]
+return a2
+```
+]]
+table.pack =
+'Retorna uma nova tabela com todos os argumentos armazenados em chaves `1`, `2`, etc. e com um campo `"n"` com o número total de argumentos.'
+table.remove =
+'Remove de `list` o elemento na posição `pos`, retornando o valor do elemento removido.'
+table.sort =
+'Ordena os elementos de `list` em uma determinada ordem, *in-place*, de `list[1]` para `list[#list]`.'
+table.unpack =
+[[
+Retorna os elementos da lista fornecida. Esta função é equivalente a
+```lua
+ return list[i], list[i+1], ···, list[j]
+```
+Por padrão, `i` é `1` e `j` é `#list`.
+]]
+table.foreach = -- TODO: need translate!
+'Executes the given f over all elements of table. For each element, f is called with the index and respective value as arguments. If f returns a non-nil value, then the loop is broken, and this value is returned as the final value of foreach.'
+table.foreachi = -- TODO: need translate!
+'Executes the given f over the numerical indices of table. For each index, f is called with the index and respective value as arguments. Indices are visited in sequential order, from 1 to n, where n is the size of the table. If f returns a non-nil value, then the loop is broken and this value is returned as the result of foreachi.'
+table.getn = -- TODO: need translate!
+'Returns the number of elements in the table. This function is equivalent to `#list`.'
+table.new = -- TODO: need translate!
+[[This creates a pre-sized table, just like the C API equivalent `lua_createtable()`. This is useful for big tables if the final table size is known and automatic table resizing is too expensive. `narray` parameter specifies the number of array-like items, and `nhash` parameter specifies the number of hash-like items. The function needs to be required before use.
+```lua
+ require("table.new")
+```
+]]
+table.clear = -- TODO: need translate!
+[[This clears all keys and values from a table, but preserves the allocated array/hash sizes. This is useful when a table, which is linked from multiple places, needs to be cleared and/or when recycling a table for use by the same context. This avoids managing backlinks, saves an allocation and the overhead of incremental array/hash part growth. The function needs to be required before use.
+```lua
+ require("table.clear").
+```
+Please note this function is meant for very specific situations. In most cases it's better to replace the (usually single) link with a new table and let the GC do its work.
+]]
+
+utf8 =
+''
+utf8.char =
+'Recebe zero ou mais inteiros, converte cada um à sua sequência de byte UTF-8 correspondente e retorna uma string com a concatenação de todas essas sequências.'
+utf8.charpattern =
+'O padrão que corresponde exatamente uma sequência de byte UTF-8, supondo que seja uma sequência válida UTF-8.'
+utf8.codes =
+[[
+Retorna valores tal que a seguinte construção
+```lua
+for p, c in utf8.codes(s) do
+ body
+end
+```
+itere em todos os caracteres UTF-8 na string s, com p sendo a posição (em bytes) e c o *codepoint* de cada caractere. Ele gera um erro se encontrado qualquer sequência de byte inválida.
+]]
+utf8.codepoint =
+'Retorna os *codepoints* (em inteiros) de todos os caracteres em `s` que iniciam entre as posições do byte `i` e `j` (ambos inclusos).'
+utf8.len =
+'Retorna o número de caracteres UTF-8 na string `s` que começa entre as posições `i` e `j` (ambos inclusos).'
+utf8.offset =
+'Retorna a posição (em bytes) onde a codificação do `n`-ésimo caractere de `s` inÃcia (contando a partir da posição `i`).'
diff --git a/nvim/mason/packages/lua-language-server/libexec/locale/pt-br/script.lua b/nvim/mason/packages/lua-language-server/libexec/locale/pt-br/script.lua
new file mode 100644
index 0000000..dd1ea68
--- /dev/null
+++ b/nvim/mason/packages/lua-language-server/libexec/locale/pt-br/script.lua
@@ -0,0 +1,1317 @@
+DIAG_LINE_ONLY_SPACE =
+'Linha com espaços apenas.'
+DIAG_LINE_POST_SPACE =
+'Linha com espaço extra ao final.'
+DIAG_UNUSED_LOCAL =
+'Escopo não utilizado `{}`.'
+DIAG_UNDEF_GLOBAL =
+'Escopo global indefinido `{}`.'
+DIAG_UNDEF_FIELD =
+'Campo indefinido `{}`.'
+DIAG_UNDEF_ENV_CHILD =
+'Variável indefinida `{}` (overloaded `_ENV` ).'
+DIAG_UNDEF_FENV_CHILD =
+'Variável indefinida `{}` (módulo interno).'
+DIAG_GLOBAL_IN_NIL_ENV =
+'Valor global inválido (`_ENV` é `nil`).'
+DIAG_GLOBAL_IN_NIL_FENV =
+'Valor global inválido (Ambiente do módulo é `nil`).'
+DIAG_UNUSED_LABEL =
+'Identificador não utilizado `{}`.'
+DIAG_UNUSED_FUNCTION =
+'Funções não utilizadas.'
+DIAG_UNUSED_VARARG =
+'vararg não utilizado.'
+DIAG_REDEFINED_LOCAL =
+'Valor local redefinido `{}`.'
+DIAG_DUPLICATE_INDEX =
+'Ãndice duplicado `{}`.'
+DIAG_DUPLICATE_METHOD =
+'Método duplicado `{}`.'
+DIAG_PREVIOUS_CALL =
+'Será interpretado como `{}{}`. Pode ser necessário adicionar uma `,`.'
+DIAG_PREFIELD_CALL =
+'Será interpretado como `{}{}`. Pode ser necessário adicionar uma `,` ou `;`.'
+DIAG_OVER_MAX_ARGS =
+'A função aceita apenas os parâmetros {:d}, mas você passou {:d}.'
+DIAG_MISS_ARGS =
+'A função recebe pelo menos {:d} argumentos, mas há {:d}.'
+DIAG_UNNECESSARY_ASSERT =
+'Asserção desnecessária: esta expressão é sempre verdadeira.'
+DIAG_OVER_MAX_VALUES =
+'Apenas há {} variáveis, mas você declarou {} valores.'
+DIAG_AMBIGUITY_1 =
+'Calcule primeiro `{}`. Você pode precisar adicionar colchetes.'
+DIAG_LOWERCASE_GLOBAL =
+'Variável global com inicial minúscula, você esqueceu o `local` ou digitou errado?'
+DIAG_EMPTY_BLOCK =
+'Bloco vazio.'
+DIAG_DIAGNOSTICS =
+'Diagnósticos Lua.'
+DIAG_SYNTAX_CHECK =
+'Verificação de sintaxe Lua.'
+DIAG_NEED_VERSION =
+'Suportado em {}, atual é {}.'
+DIAG_DEFINED_VERSION =
+'Definido em {}, a corrente é {}.'
+DIAG_DEFINED_CUSTOM =
+'Definido em {}.'
+DIAG_DUPLICATE_CLASS =
+'Classe duplicada `{}`.'
+DIAG_UNDEFINED_CLASS =
+'Classe indefinida `{}`.'
+DIAG_CYCLIC_EXTENDS =
+'Herança cÃclica.'
+DIAG_INEXISTENT_PARAM =
+'Parâmetro inexistente.'
+DIAG_DUPLICATE_PARAM =
+'Parâmetro duplicado.'
+DIAG_NEED_CLASS =
+'Classe precisa ser definida primeiro.'
+DIAG_DUPLICATE_SET_FIELD=
+'Campo duplicado `{}`.'
+DIAG_SET_CONST =
+'Atribuição à variável constante.'
+DIAG_SET_FOR_STATE =
+'Atribuição à variável to tipo for-state.'
+DIAG_CODE_AFTER_BREAK =
+'Não é possÃvel executar o código depois `break`.'
+DIAG_UNBALANCED_ASSIGNMENTS =
+'O valor é atribuÃdo como `nil` porque o número de valores não é suficiente. Em Lua, `x, y = 1` é equivalente a `x, y = 1, nil` .'
+DIAG_REQUIRE_LIKE =
+'Você pode tratar `{}` como `require` por configuração.'
+DIAG_COSE_NON_OBJECT =
+'Não é possÃvel fechar um valor desse tipo. (A menos que se defina o meta método `__close`)'
+DIAG_COUNT_DOWN_LOOP =
+'Você quer dizer `{}` ?'
+DIAG_UNKNOWN =
+'Não pode inferir tipo.'
+DIAG_DEPRECATED =
+'Descontinuada.'
+DIAG_DIFFERENT_REQUIRES =
+'O mesmo arquivo é necessário com nomes diferentes.'
+DIAG_REDUNDANT_RETURN =
+'Retorno redundante.'
+DIAG_AWAIT_IN_SYNC =
+'Funções assÃncronas apenas podem ser chamada em funções assÃncronas.'
+DIAG_NOT_YIELDABLE =
+'O {}-ésimo parâmetro desta função não foi marcada como produzÃvel, mas uma função assÃncrona foi passada. (Use `---@param name async fun()` para marcar como produzÃvel)'
+DIAG_DISCARD_RETURNS =
+'Os valores retornados desta função não podem ser descartáveis.'
+DIAG_NEED_CHECK_NIL =
+'Necessário checar o nil.'
+DIAG_CIRCLE_DOC_CLASS =
+'Classes com herança cÃclica.'
+DIAG_DOC_FIELD_NO_CLASS =
+'O campo deve ser definido após a classe.'
+DIAG_DUPLICATE_DOC_ALIAS = -- TODO: need translate!
+'Duplicate defined alias `{}`.'
+DIAG_DUPLICATE_DOC_FIELD =
+'Campos definidos duplicados `{}`.'
+DIAG_DUPLICATE_DOC_PARAM =
+'Parâmetros duplicados `{}`.'
+DIAG_UNDEFINED_DOC_CLASS =
+'Classe indefinida `{}`.'
+DIAG_UNDEFINED_DOC_NAME =
+'Tipo ou alias indefinido `{}`.'
+DIAG_UNDEFINED_DOC_PARAM =
+'Parâmetro indefinido `{}`.'
+DIAG_MISSING_GLOBAL_DOC_COMMENT = -- TODO: need translate!
+'Missing comment for global function `{}`.'
+DIAG_MISSING_GLOBAL_DOC_PARAM = -- TODO: need translate!
+'Missing @param annotation for parameter `{}` in global function `{}`.'
+DIAG_MISSING_GLOBAL_DOC_RETURN = -- TODO: need translate!
+'Missing @return annotation at index `{}` in global function `{}`.'
+DIAG_MISSING_LOCAL_EXPORT_DOC_COMMENT = -- TODO: need translate!
+'Missing comment for exported local function `{}`.'
+DIAG_MISSING_LOCAL_EXPORT_DOC_PARAM = -- TODO: need translate!
+'Missing @param annotation for parameter `{}` in exported local function `{}`.'
+DIAG_MISSING_LOCAL_EXPORT_DOC_RETURN = -- TODO: need translate!
+'Missing @return annotation at index `{}` in exported local function `{}`.'
+DIAG_INCOMPLETE_SIGNATURE_DOC_PARAM = -- TODO: need translate!
+'Incomplete signature. Missing @param annotation for parameter `{}`.'
+DIAG_INCOMPLETE_SIGNATURE_DOC_RETURN = -- TODO: need translate!
+'Incomplete signature. Missing @return annotation at index `{}`.'
+DIAG_UNKNOWN_DIAG_CODE = -- TODO: need translate!
+'Código de diagnóstico desconhecido `{}`.'
+DIAG_CAST_LOCAL_TYPE = -- TODO: need translate!
+'This variable is defined as type `{def}`. Cannot convert its type to `{ref}`.'
+DIAG_CAST_FIELD_TYPE = -- TODO: need translate!
+'This field is defined as type `{def}`. Cannot convert its type to `{ref}`.'
+DIAG_ASSIGN_TYPE_MISMATCH = -- TODO: need translate!
+'Cannot assign `{ref}` to `{def}`.'
+DIAG_PARAM_TYPE_MISMATCH = -- TODO: need translate!
+'Cannot assign `{ref}` to parameter `{def}`.'
+DIAG_UNKNOWN_CAST_VARIABLE = -- TODO: need translate!
+'Unknown type conversion variable `{}`.'
+DIAG_CAST_TYPE_MISMATCH = -- TODO: need translate!
+'Cannot convert `{ref}` to `{def}`。'
+DIAG_MISSING_RETURN_VALUE = -- TODO: need translate!
+'At least {min} return values are required, but here only {rmax} values are returned.'
+DIAG_MISSING_RETURN_VALUE_RANGE = -- TODO: need translate!
+'At least {min} return values are required, but here only {rmin} to {rmax} values are returned.'
+DIAG_REDUNDANT_RETURN_VALUE = -- TODO: need translate!
+'At most {max} values returned, but the {rmax}th value was returned here.'
+DIAG_REDUNDANT_RETURN_VALUE_RANGE = -- TODO: need translate!
+'At most {max} values returned, but {rmin}th to {rmax}th values were returned here.'
+DIAG_MISSING_RETURN = -- TODO: need translate!
+'Return value is required here.'
+DIAG_RETURN_TYPE_MISMATCH = -- TODO: need translate!
+'The type of the {index} return value is `{def}`, but the actual return is `{ref}`.\n{err}'
+DIAG_UNKNOWN_OPERATOR = -- TODO: need translate!
+'Unknown operator `{}`.'
+DIAG_UNREACHABLE_CODE = -- TODO: need translate!
+'Unreachable code.'
+DIAG_INVISIBLE_PRIVATE = -- TODO: need translate!
+'Field `{field}` is private, it can only be accessed in class `{class}`.'
+DIAG_INVISIBLE_PROTECTED = -- TODO: need translate!
+'Field `{field}` is protected, it can only be accessed in class `{class}` and its subclasses.'
+DIAG_INVISIBLE_PACKAGE = -- TODO: need translate!
+'Field `{field}` can only be accessed in same file `{uri}`.'
+DIAG_GLOBAL_ELEMENT = -- TODO: need translate!
+'Element is global.'
+DIAG_MISSING_FIELDS = -- TODO: need translate!
+'Missing required fields in type `{1}`: {2}'
+DIAG_INJECT_FIELD = -- TODO: need translate!
+'Fields cannot be injected into the reference of `{class}` for `{field}`. {fix}'
+DIAG_INJECT_FIELD_FIX_CLASS = -- TODO: need translate!
+'To do so, use `---@class` for `{node}`.'
+DIAG_INJECT_FIELD_FIX_TABLE = -- TODO: need translate!
+'如è¦å…è®¸æ³¨å…¥ï¼Œè¯·åœ¨å®šä¹‰ä¸æ·»åŠ `{fix}` 。'
+
+MWS_NOT_SUPPORT =
+'{} não é suportado múltiplos espaços de trabalho por enquanto, posso precisar reiniciar para estabelecer um novo espaço de trabalho ...'
+MWS_RESTART =
+'Reiniciar'
+MWS_NOT_COMPLETE =
+'O espaço de trabalho ainda não está completo. Você pode tentar novamente mais tarde ...'
+MWS_COMPLETE =
+'O espaço de trabalho está completo agora. Você pode tentar novamente ...'
+MWS_MAX_PRELOAD =
+'Arquivos pré-carregados atingiram o limite máximo ({}), você precisa abrir manualmente os arquivos que precisam ser carregados.'
+MWS_UCONFIG_FAILED =
+'Armazenamento da configuração do usuário falhou.'
+MWS_UCONFIG_UPDATED =
+'Configuração do usuário atualizada.'
+MWS_WCONFIG_UPDATED =
+'Configuração do espaço de trabalho atualizado.'
+
+WORKSPACE_SKIP_LARGE_FILE =
+'Arquivo muito grande: {} ignorada. O limite de tamanho atualmente definido é: {} KB, e o tamanho do arquivo é: {} KB.'
+WORKSPACE_LOADING =
+'Carregando espaço de trabalho.'
+WORKSPACE_DIAGNOSTIC =
+'Diagnóstico de espaço de trabalho.'
+WORKSPACE_SKIP_HUGE_FILE =
+'Por motivos de desempenho, a análise deste arquivo foi interrompida: {}'
+WORKSPACE_NOT_ALLOWED =
+'Seu espaço de trabalho foi definido para `{}`. Servidor da linguagem Lua recusou o carregamneto neste diretório. Por favor, cheque sua configuração. [aprenda mais aqui](https://luals.github.io/wiki/faq#why-is-the-server-scanning-the-wrong-folder)'
+WORKSPACE_SCAN_TOO_MUCH = -- TODO: need translate!
+'Mais do que {} arquivos foram escaneados. O diretório atual escaneado é `{}`. Please see the [FAQ](https://luals.github.io/wiki/faq#how-can-i-improve-startup-speeds) to see how you can include fewer files. It is also possible that your [configuration is incorrect](https://luals.github.io/wiki/faq#why-is-the-server-scanning-the-wrong-folder).'
+
+PARSER_CRASH =
+'Parser quebrou! Últimas palavras: {}'
+PARSER_UNKNOWN =
+'Erro de sintaxe desconhecido ...'
+PARSER_MISS_NAME =
+' esperado.'
+PARSER_UNKNOWN_SYMBOL =
+'SÃmbolo inesperado `{symbol}`.'
+PARSER_MISS_SYMBOL =
+'SÃmbolo não encontrado `{symbol}`.'
+PARSER_MISS_ESC_X =
+'Deve ser 2 dÃgitos hexadecimais.'
+PARSER_UTF8_SMALL =
+'Pelo menos 1 dÃgito hexadecimal.'
+PARSER_UTF8_MAX =
+'Deve estar entre {min} e {max}.'
+PARSER_ERR_ESC =
+'Sequência de saÃda inválida.'
+PARSER_MUST_X16 =
+'Deve ser dÃgitos hexadecimais.'
+PARSER_MISS_EXPONENT =
+'DÃgitos perdidos para o expoente.'
+PARSER_MISS_EXP =
+' esperada.'
+PARSER_MISS_FIELD =
+' esperado.'
+PARSER_MISS_METHOD =
+' esperado.'
+PARSER_ARGS_AFTER_DOTS =
+'`...` deve ser o último argumento.'
+PARSER_KEYWORD =
+' não pode ser usado como nome.'
+PARSER_EXP_IN_ACTION =
+'Inesperada .'
+PARSER_BREAK_OUTSIDE =
+' não está dentro de um loop.'
+PARSER_MALFORMED_NUMBER =
+'Número malformado.'
+PARSER_ACTION_AFTER_RETURN =
+' esperado após `return`.'
+PARSER_ACTION_AFTER_BREAK =
+' esperado após `break`.'
+PARSER_NO_VISIBLE_LABEL =
+'Nenhum identificador visÃvel `{label}` .'
+PARSER_REDEFINE_LABEL =
+'Identificador `{label}` já foi definido.'
+PARSER_UNSUPPORT_SYMBOL =
+'{version} não suporta esta gramática.'
+PARSER_UNEXPECT_DOTS =
+'Não pode usar `...` fora de uma função vararg.'
+PARSER_UNEXPECT_SYMBOL =
+'SÃmbolo inesperado `{symbol}` .'
+PARSER_UNKNOWN_TAG =
+'Atributo desconhecido.'
+PARSER_MULTI_TAG =
+'Não suporta múltiplos atributos.'
+PARSER_UNEXPECT_LFUNC_NAME =
+'A função local só pode usar identificadores como nome.'
+PARSER_UNEXPECT_EFUNC_NAME =
+'Função como expressão não pode ser nomeada.'
+PARSER_ERR_LCOMMENT_END =
+'Anotações em múltiplas linhas devem ser fechadas por `{symbol}` .'
+PARSER_ERR_C_LONG_COMMENT =
+'Lua deve usar `--[[ ]]` para anotações em múltiplas linhas.'
+PARSER_ERR_LSTRING_END =
+'String longa deve ser fechada por `{symbol}` .'
+PARSER_ERR_ASSIGN_AS_EQ =
+'Deveria usar `=` para atribuição.'
+PARSER_ERR_EQ_AS_ASSIGN =
+'Deveria usar `==` para comparação de igualdade.'
+PARSER_ERR_UEQ =
+'Deveria usar `~=` para comparação de desigualdade.'
+PARSER_ERR_THEN_AS_DO =
+'Deveria usar `then` .'
+PARSER_ERR_DO_AS_THEN =
+'Deveria usar `do` .'
+PARSER_MISS_END =
+'Falta o `end` correspondente.'
+PARSER_ERR_COMMENT_PREFIX =
+'Lua usa `--` para anotações/comentários.'
+PARSER_MISS_SEP_IN_TABLE =
+'Falta o sÃmbolo `,` ou `;` .'
+PARSER_SET_CONST =
+'Atribuição à variável constante.'
+PARSER_UNICODE_NAME =
+'Contém caracteres Unicode.'
+PARSER_ERR_NONSTANDARD_SYMBOL =
+'Deveria usar `{symbol}`.'
+PARSER_MISS_SPACE_BETWEEN =
+'Devem ser deixados espaços entre sÃmbolos.'
+PARSER_INDEX_IN_FUNC_NAME =
+'A forma `[name]` não pode ser usada em nome de uma função nomeada.'
+PARSER_UNKNOWN_ATTRIBUTE =
+'Atributo local deve ser `const` ou `close`'
+PARSER_AMBIGUOUS_SYNTAX = -- TODO: need translate!
+'In Lua 5.1, the left brackets called by the function must be in the same line as the function.'
+PARSER_NEED_PAREN = -- TODO: need translate!
+'éœ€è¦æ·»åŠ ä¸€å¯¹æ‹¬å·ã€‚'
+PARSER_NESTING_LONG_MARK = -- TODO: need translate!
+'Nesting of `[[...]]` is not allowed in Lua 5.1 .'
+PARSER_LOCAL_LIMIT = -- TODO: need translate!
+'Only 200 active local variables and upvalues can be existed at the same time.'
+PARSER_LUADOC_MISS_CLASS_NAME =
+'Esperado .'
+PARSER_LUADOC_MISS_EXTENDS_SYMBOL =
+'Esperado `:`.'
+PARSER_LUADOC_MISS_CLASS_EXTENDS_NAME =
+'Esperado .'
+PARSER_LUADOC_MISS_SYMBOL =
+'Esperado `{symbol}`.'
+PARSER_LUADOC_MISS_ARG_NAME =
+'Esperado .'
+PARSER_LUADOC_MISS_TYPE_NAME =
+'Esperado .'
+PARSER_LUADOC_MISS_ALIAS_NAME =
+'Esperado .'
+PARSER_LUADOC_MISS_ALIAS_EXTENDS =
+'Esperado .'
+PARSER_LUADOC_MISS_PARAM_NAME =
+'Esperado