ใช้ Treesitter เพื่อซื้อแท็ก HTML AutoRename และ Autorename
มันใช้งานได้กับ:
และอีกมาก
Before Input After
------------------------------------
<div > <div></div>
<div></div> ciwspan<esc> <span></span>
------------------------------------
ต้องใช้ Nvim 0.9.5
ขึ้นไป
โปรดทราบว่า nvim-ts-autotag
จะไม่ทำงานเว้นแต่คุณจะมีตัวแยกวิเคราะห์ต้นไม้ (เช่น html
) ที่ติดตั้งสำหรับ fileType ที่กำหนด ดู NVIM-Treesitter สำหรับการติดตั้งตัวแยกวิเคราะห์
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
}
}
})
คำเตือน
หากคุณกำลังตั้งค่าผ่าน nvim-treesitter.configs
มันเลิกใช้แล้ว! กรุณาอพยพไปยังวิธีใหม่ มันจะถูกลบออกใน 1.0.0
สำหรับผู้ที่ใช้การโหลดขี้เกียจผ่านตัวจัดการปลั๊กอิน (เช่น lazy.nvim) การโหลดขี้เกียจไม่จำเป็นอย่างยิ่งสำหรับปลั๊กอินนี้ nvim-ts-autotag
มีประสิทธิภาพในการเลือกเมื่อต้องการโหลด หากคุณยังคงยืนยันในการโหลด nvim-ts-autotag
ที่ขี้เกียจแล้วสองเหตุการณ์ที่ดีที่จะใช้คือ BufReadPre
& BufNewFile
สมมติว่ามีภาษาที่ nvim-ts-autotag
ไม่สนับสนุนในปัจจุบันและคุณต้องการสนับสนุนในการกำหนดค่าของคุณ ในขณะที่มันจะเป็นความชอบของผู้เขียนที่คุณอัปสตรีมการเปลี่ยนแปลงของคุณบางทีคุณอาจจะไม่?
ตัวอย่างเช่นหากคุณมีภาษาที่มีรูปแบบที่คล้ายกันมากในการสืบค้นต้นไม้เป็น html
คุณสามารถเพิ่มนามแฝงได้เช่นนั้น:
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 " )
นั่นจะทำให้แท็กปิด nvim-ts-autotag
ตามกฎของการกำหนดค่า html
ในภาษาที่กำหนด
แต่จะเกิดอะไรขึ้นถ้าตัวแยกวิเคราะห์แบ่งไม่ว่าด้วยเหตุผลใดก็ตามตัวอย่างเช่นต้นไม้ต้นน้ำต้นไม้จะเปลี่ยนชื่อโหนดและตอนนี้การสืบค้นเริ่มต้นที่ nvim-ts-autotag
ไม่ได้ทำงานอีกต่อไป
ไม่กลัว! คุณสามารถขยายและแทนที่การกำหนดค่าที่มีอยู่ได้โดยตรง ตัวอย่างเช่นสมมติว่ารูปแบบแท็กเริ่มต้นและจุดสิ้นสุดมีการเปลี่ยนแปลงสำหรับ xml
เราสามารถแทนที่ xml
config โดยตรง:
local TagConfigs = require ( " nvim-ts-autotag.config.init " )
TagConfigs : update ( TagConfigs : get ( " xml " ): override ( " xml " , {
start_tag_pattern = { " STag " },
end_tag_pattern = { " ETag " },
}))
ในความเป็นจริงสิ่งนี้เกือบจะเป็นสิ่งที่เราทำในช่วงการเริ่มต้นภายในของเราเองสำหรับ nvim-ts-autotag
หากคุณมีปัญหา #19
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 ,
}
)
ขอบคุณ @pricehiller สำหรับงานของเขาในปลั๊กอินนี้
หากคุณพบว่าปลั๊กอินนี้มีประโยชน์โปรดพิจารณาสนับสนุนโครงการ
ผู้สนับสนุน