รับการเติมข้อความอัตโนมัติ JS แบบเต็มภายใต้ Sublime Text


98

ฉันเพิ่งติดตั้ง Sublime Text ใน Windows Vista และแม้จะทำตามคำแนะนำที่ให้ไว้ในโพสต์นี้กล่าวคือตั้งค่าอย่างชัดเจนView > Syntax > JavaScript > JavaScriptฉันเห็นเฉพาะคำแนะนำตามสิ่งที่ฉันได้พิมพ์ไว้ก่อนหน้า ฉันยังติดตั้งปลั๊กอิน SublimeCodeIntel ด้วยซ้ำแต่ก็ไม่มีประโยชน์

ตามที่ฉันเข้าใจเมื่อฉันเขียน "pars" ฉันควรได้รับตัวเลือก "parseFloat" และ "parseInt" เช่นเดียวกับในเครื่องมือของนักพัฒนา Chrome ใช่ไหม

ขอบคุณ!


8
ปี 2558 นี้: สถานการณ์ยังไม่ดีขึ้น ไม่มีอะไรทำงานนอกกรอบ บรรณาธิการอายุ 8 ปีมีการเติมข้อความอัตโนมัติที่ดีกว่า
Muhammad Umer

ดูคำตอบของฉันด้านล่าง @MuhammadUmer จนถึงตอนนี้มันใช้งานได้ นอกกรอบ .. และสวยงาม.
Steve Meisner

1
@SteveMeisner - คำตอบของคุณจะกล่าวถึงที่นี่meta.stackoverflow.com/q/341163/73226
Martin Smith

1
ฉันตอบด้วยคำตอบ "ลิงก์เท่านั้น" ส่วนใหญ่และมันก็เห่อ แต่นี่คือแพ็คเกจที่ยอดเยี่ยมที่ฉันใช้สำหรับ JS Intellisense / การเติมข้อความอัตโนมัติ: github.com/pichillilorenzo/JavaScript-Completions
Steve Meisner

ในกรณีที่มีคนอย่างฉันจัดการกับปัญหานี้ นี่คือเหตุผลว่าทำไมฉันถึงเปลี่ยนมาใช้ VS Code มีคุณสมบัติ Intellisense ที่ยอดเยี่ยมนี้ซึ่งใช้งานได้ดีและรับการเติมข้อความอัตโนมัติในโมดูล JS จนถึงตอนนี้สนุกกับมัน
Sergiy Ostrovsky

คำตอบ:


76

คำแนะนำ (โดยทั่วไป) จะขึ้นอยู่กับข้อความในไฟล์ที่เปิดอยู่ปัจจุบันและตัวอย่างข้อมูลหรือส่วนที่สมบูรณ์ที่คุณได้กำหนดไว้ ( อ้างอิง ) หากคุณต้องการคำแนะนำข้อความเพิ่มเติมฉันขอแนะนำ:

ตามหมายเหตุด้านข้างฉันขอแนะนำให้ติดตั้งการควบคุมแพ็คเกจเพื่อใช้ประโยชน์จากชุมชน Sublime อย่างเต็มที่ บางตัวเลือกข้างต้นใช้การควบคุมแพ็คเกจ ฉันขอแนะนำวิดีโอแนะนำtutsplus Sublimeซึ่งรวมถึงข้อมูลทุกประเภทเกี่ยวกับการปรับปรุงประสิทธิภาพของคุณเมื่อใช้ Sublime


1
โหวตและยอมรับตามชุดเครื่องมือ Emmet ที่ยอดเยี่ยม! เป็นเรื่องที่น่าเหลือเชื่อ ไม่ค่อยรู้จัก JS เท่า ๆ กับตัวตรวจสอบเว็บ Chrome แต่ฉันเดาว่านั่นไม่ใช่เรื่องเลวร้าย (ท้ายที่สุดฉันต้องการเพิ่มความจำของกล้ามเนื้อ) ในทางกลับกันงานที่ Emmet ทำเพื่อคุณนั้นยอดเยี่ยมมาก! ขอบคุณ!
ezequiel-garzon

2
ดีใจที่มีประโยชน์ ฉันหวังว่าคุณจะดูลำดับการสอนทั้งหมดนั้น มีของดีมากมายในนั้น
dbn

1
แต่มันไม่ฟรี: / อาจจะก่อนหน้านี้
Jeff P Chacko

3
ฉันรู้สึกว่านั่นเป็นโฆษณาของไซต์ tutsplus อาจจะไม่ได้มา แต่เดิม แต่ฉันอยากเห็นคำตอบที่เชื่อมโยงซึ่งไม่อยู่หลัง paywalls
dcmbrown

เฮ้ใช่ทุกคนเป็นอิสระเมื่อฉันดูพวกเขา การอัปเดตคำตอบเพื่อให้ทราบว่าสิ่งเหล่านี้อยู่เบื้องหลัง paywall
dbn

66

Ternjs เป็นทางเลือกใหม่สำหรับการเติมข้อความอัตโนมัติ JS http://ternjs.net/

ปลั๊กอิน Sublime

ปลั๊กอิน Tern ที่ได้รับการดูแลอย่างดีที่สุดสำหรับ Sublime Text เรียกว่า'tern_for_sublime'

นอกจากนี้ยังมีปลั๊กอินเก่าที่เรียกว่า'TernJS' ไม่ได้รับการดูแลรักษาและมีบั๊กที่เกี่ยวข้องกับประสิทธิภาพหลายอย่างซึ่งทำให้ Sublime Text ผิดพลาดดังนั้นหลีกเลี่ยงสิ่งนั้น


2
ขัดข้อง ST3 ไม่ได้รับการดูแลโครงการ
คอร์ด

1
ฉันไม่เคยสัมผัสมาก่อนคุณกำลังใช้แพ็คเกจใดอยู่ ฉันใช้github.com/marijnh/tern_for_sublime
subhaze

2
ฉันอยากจะแนะนำให้ใช้ลิงค์ที่ฉันให้ไว้ในคำตอบและในความคิดเห็นของฉัน มันยังคงอยู่
subhaze

1
ฉันไม่เห็นว่า 'เค็ม' จริงๆ แต่ฉันต้องการชี้ให้เห็นว่าความคิดเห็นของคุณไม่ถูกต้องในการบอกว่าปลั๊กอินที่ฉันเชื่อมโยงไม่ได้รับการดูแล เนื่องจากมีการอัปเดตล่าสุดบน github
subhaze

1
ฉันได้อัปเดตความคิดเห็นเพื่อหวังว่าจะน้อยลง / ไม่เค็ม: / และในขณะที่อ่านความคิดเห็นเหล่านี้หวังว่าผู้คนจะไม่ถูก 'นำไป' แต่ในทิศทางที่ถูกต้อง
subhaze

41

ดังที่ได้กล่าวไปแล้วtern.jsเป็นโครงการใหม่และมีแนวโน้มที่มีปลั๊กอินสำหรับ Sublime Text, Vim และ Emacs ฉันใช้TernJS สำหรับ Sublimeมาระยะหนึ่งแล้วและคำแนะนำที่ฉันได้รับนั้นดีกว่ามาตรฐานทั่วไป:

ป้อนคำอธิบายภาพที่นี่

Tern สแกนไฟล์. js ทั้งหมดในโปรเจ็กต์ของคุณ คุณสามารถรับการสนับสนุนสำหรับ DOM, nodejs, jQuery และอื่น ๆ ได้โดยการเพิ่ม "libs" ในไฟล์. sublime-project ของคุณ:

"ternjs": {
    "exclude": ["wordpress/**", "node_modules/**"],
    "libs": ["browser", "jquery"],
    "plugins": {
        "requirejs": {
            "baseURL": "./js"
        }
    }
}

ป้อนคำอธิบายภาพที่นี่


ในตัวอย่างสุดท้ายฉันไม่ได้รับคำแนะนำ 'src' - ฉันเพิ่งติดตั้ง (Sublime Text 3) และใช้การตั้งค่าโครงการของคุณ
Rune Jeppesen

2
รองรับจาวาสคริปต์สไตล์ ES6 (ES2015) หรือไม่
Dan Esparza

1
ใช่ไซต์โครงการ tern.js มีรายการคุณสมบัติ ES6 ที่รองรับ
eosterberg

1
สำหรับสิ่งที่คุ้มค่าคุณระบุว่าคุณใช้ "tern for sublime" แต่ลิงก์ไปยังปลั๊กอิน ternJS ... Tern for Sublime -> packagecontrol.io/packages/tern_for_sublime TernJS -> packagecontrol.io/packages/TernJS
subhaze

ฉันประหลาดใจที่คุณได้รับแอตทริบิวต์ selectedIndex เนื่องจาก createTag จะส่งคืนแท็ก img HTTP นอกจากนี้ selectedIndex ยังเป็นของแท็ก HTTP ที่เลือกไม่ใช่ img หรือองค์ประกอบหลัก คุณจะแสดงความคิดเห็นเกี่ยวกับวิธีที่คุณได้รับคำแนะนำทั้งสองนี้หรือไม่? ฉันเชื่อว่าเป็นเพราะคุณใช้ไฟล์เหล่านี้ในไฟล์อื่นไม่ใช่เพราะ JsTern มีความสามารถในการแก้ไขการเรียก createElement เมื่อรัน การแนะนำ selectedIndex ก็ไม่สมเหตุสมผล
Alex

9

มีสามแนวทาง

  • ใช้ปลั๊กอิน SublimeCodeIntel

  • ใช้ปลั๊กอิน CTags

  • สร้างไฟล์. sublime-complete ด้วยตนเอง

วิธีการอธิบายโดยละเอียดในบล็อกโพสต์นี้ (ของฉัน): http://opensourcehacker.com/2013/03/04/javascript-autocompletions-and-having-one-for-sublime-text-2/


แนวทางที่ดีและแตกต่างจากของฉันมาก
dbn

6

ผมพัฒนาปลั๊กอินใหม่ที่เรียกว่าJavaScript การเพิ่มประสิทธิภาพที่คุณจะพบกับแพคเกจการควบคุม ใช้Flow (ตัวตรวจสอบประเภทคงที่ของจาวาสคริปต์จาก Facebook) ภายใต้ประทุน

นอกจากนี้ยังมีการเติมข้อความอัตโนมัติจาวาสคริปต์สมาร์ท (เมื่อเทียบกับปลั๊กอินอื่น ๆ ของฉันสำเร็จจาวาสคริปต์), ข้อผิดพลาดแบบ real-time , รหัส refactoringและยังมีจำนวนมากของคุณสมบัติเกี่ยวกับการสร้างการพัฒนาและการจัดการโครงการจาวาสคริปต์

ดูWikiเพื่อทราบคุณสมบัติทั้งหมดที่มีให้!

คำแนะนำเกี่ยวกับปลั๊กอินนี้สามารถพบได้ในบทความcss-tricks.comนี้: เปลี่ยน Sublime Text 3 ให้เป็น JavaScript IDE

ภาพหน้าจอด่วนบางส่วน:


1
สวัสดี Lorenzo ฉันอยากรู้เกี่ยวกับโครงการของคุณ แต่ฉันต้องการตัวเลือกใดบ้างในแง่ของการปรับแต่งความสำเร็จ โดยทั่วไปฉันต้องการคำแนะนำเช่นdocu> document, document.que> document.querySelectorและอื่น ๆ แต่ไม่เคยเรียกใช้ฟังก์ชันเต็มรูปแบบด้วยอาร์กิวเมนต์และหลายบรรทัดเช่นarr.forEa> arr.forEach((object,index,array) => { /* newline */ });หากเป็นเช่นนั้น ฉันสามารถปิดการใช้งานด้วย Javascript Enhancements โดยไม่ต้องแก้ไขไฟล์ทั้งหมดด้วยตนเองได้หรือไม่ ฉันปิดใช้งานความสำเร็จทั้งหมดแล้วเพราะฉันหมกมุ่นอยู่กับโครงสร้างของฉันเล็กน้อย
ViggoV

2

ณ วันนี้ (พฤศจิกายน 2019) ไมโครซอฟท์ปลั๊กอิน typescriptไม่สิ่งที่จำเป็น OP: https://packagecontrol.io/packages/TypeScript


1

ตรวจสอบว่าตัวอย่างข้อมูลมี<tabTrigger>แอตทริบิวต์ที่ขึ้นต้นด้วยอักขระพิเศษหรือไม่ หากเป็นเช่นนั้นจะไม่ปรากฏในช่องเติมข้อความอัตโนมัติ ขณะนี้ปัญหานี้เป็นปัญหาใน Windows เกี่ยวกับปลั๊กอินjQuery ที่มีอยู่

ดูคำตอบของฉันในหัวข้อนี้สำหรับรายละเอียดเพิ่มเติม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.