วิธีรับมุมมองเค้าร่างใน Sublime texteditor?


117

ฉันจะดูเค้าร่างในโปรแกรมแก้ไขข้อความประเสริฐสำหรับ Windows ได้อย่างไร

แผนที่ย่อมีประโยชน์ แต่ฉันพลาดโครงร่างแบบเดิม (รายการฟังก์ชันทั้งหมดที่คลิกได้ในรหัสของฉันตามลำดับที่ปรากฏเพื่อการนำทางและการวางแนวอย่างรวดเร็ว)

อาจจะมีปลั๊กอิน addon หรือคล้ายกัน? จะเป็นการดีหากคุณสามารถตั้งชื่อได้ในไม่ช้าว่าขั้นตอนใดที่จำเป็นเพื่อให้มันใช้งานได้

มีคำถามนี้ซ้ำกันในฟอรัมข้อความประเสริฐ


ฉันได้เพิ่มคำขอคุณสมบัติสำหรับ SublimeText 3 อย่าลังเลที่จะลงคะแนนให้
ชื่อคือ carl

คำตอบ:


266

กดCTRL+ RหรือCMD+ Rสำหรับ Mac สำหรับรายการฟังก์ชัน สิ่งนี้ใช้ได้กับ Sublime Text 1.3 ขึ้นไป


ฟังดูเข้าท่า. แต่ไม่มีอะไรเกิดขึ้นเมื่อฉันกด ctrl-r ฉันมีไฟล์ php เปิดอยู่ ฉันสามารถค้นหาคำสั่งในเมนูได้หรือไม่? ใช้งานได้โดยไม่ต้องใช้ปลั๊กอินหรือไม่? karlthorwald
user89021

6
Ctrl + r มีอยู่ในเวอร์ชันเบต้าปัจจุบัน ( sublimetext.com/beta ) แต่ไม่ใช่ใน 1.2
jskinner

1
มันยอดเยี่ยมมากและฉันพลาดมุมมองเค้าร่างจาก Eclipse ไปจริงๆ นี่เป็นสิ่งที่ดีกว่ามากแม้ว่าฉันหวังว่าจะมีวิธีที่จะดึงเฉพาะฟังก์ชั่นหลักและไม่ใช่ฟังก์ชันเรียกกลับ / สำเร็จ
Michael BW

1
รายการไม่ถูกจัดเรียงขออภัย ฉันพลาดที่จะมีมุมมองเค้าร่างของ Eclipse พร้อมรายการฟังก์ชันที่เรียงลำดับ
scorpiodawg

1
ความคืบหน้าเพิ่มเติมใด ๆ ในมุมมองเค้าร่างจริงเช่นสิ่งที่มีอยู่ใน Eclipse และ Oxygen editors? สิ่งที่ขาดด้วย ctrl + r คือไม่มีข้อบ่งชี้ว่าเป็นตัวแปรหรือฟังก์ชันเหมือนกัน
kstubs

17

ฉันใช้การพับทั้งหมด มันจะย่อทุกอย่างให้เหลือน้อยที่สุดในการประกาศฉันสามารถดูวิธีการ / ฟังก์ชั่นทั้งหมดจากนั้นขยายสิ่งที่ฉันสนใจ


10
จากเมนู ST 3: Edit-Code Folding-Fold All ทางลัด Ctrl + k, 1. Ctrl-k, j เพื่อเลิกทำ
wolfstevent

16

ปลั๊กอินชื่อOutlineพร้อมใช้งานในการควบคุมแพ็คเกจลองดูสิ! https://packagecontrol.io/packages/Outline

หมายเหตุ: ไม่ทำงานในโหมดหลายแถว / คอลัมน์ สำหรับการทำงานหลายแถว / คอลัมน์ให้ใช้ทางแยกนี้: https://github.com/vlad-wonderkidstudio/SublimeOutline


2
หมายเหตุ: หากต้องการออกจากมุมมองเค้าร่างให้คลิกปุ่มปิดเล็ก ๆ ในแท็บเค้าร่างจากนั้นกด Shift+ Alt+ 1หรือไปที่ View -> Layout -> Single หากต้องการเปิดสำรองข้อมูลให้ใช้Ctrl+ Shift+ Pจากนั้นค้นหาBrowse Mode: Outline
Gabriel Staples

8

ฉันดูที่SublimeText 3 apiสั้น ๆและview.find_by_selector(selector)ดูเหมือนว่าจะสามารถส่งคืนรายการภูมิภาคได้

ดังนั้นฉันเดาว่าปลั๊กอินที่จะแสดงโครงร่าง / โครงสร้างของไฟล์ของคุณเป็นไปได้

ปลั๊กอินที่จะแสดงสิ่งนี้:

โครงร่างรหัส

หมายเหตุ: ปลั๊กอินชื่อฟังก์ชั่นการแสดงผลสามารถนำมาใช้เป็นแรงบันดาลใจที่จะดึงชั้น / ชื่อวิธีการหรือClassHierarchyเพื่อแยกโครงสร้างร่าง


0

หากคุณต้องการให้สามารถพิมพ์หรือบันทึกโครงร่าง ctr / command + r จะไม่มีประโยชน์มากนัก เราสามารถค้นหาทั้งหมดในgrep ต่อไปนี้^[^\n]*function[^{]+{ หรือตัวแปรบางอย่างเพื่อให้เหมาะกับภาษาและสถานการณ์ที่คุณกำลังทำงานอยู่

เมื่อคุณค้นหาทั้งหมดแล้วคุณสามารถคัดลอกและวางผลลัพธ์ลงในเอกสารใหม่ได้และขึ้นอยู่กับจำนวนฟังก์ชันไม่ควรใช้เวลานานในการจัดระเบียบ

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

ด้วยการแก้ไขที่รวดเร็วมากนี่คือผลลัพธ์ที่ฉันได้รับจากสิ่งที่ฉันกำลังทำอยู่ตอนนี้

    PathMaker.prototype.start = PathMaker.prototype.initiate = function(point){};
    PathMaker.prototype.path = function(thePath){};
    PathMaker.prototype.add = function(point){};
    PathMaker.prototype.addPath = function(path){};
    PathMaker.prototype.go = function(distance, angle){};
    PathMaker.prototype.goE = function(distance, angle){};
    PathMaker.prototype.turn = function(angle, distance){};
    PathMaker.prototype.continue = function(distance, a){};
    PathMaker.prototype.curve = function(angle, radiusX, radiusY){};
    PathMaker.prototype.up = PathMaker.prototype.north = function(distance){};
    PathMaker.prototype.down = PathMaker.prototype.south = function(distance){};
    PathMaker.prototype.east = function(distance){};
    PathMaker.prototype.west = function(distance){};
    PathMaker.prototype.getAngle = function(point){};
    PathMaker.prototype.toBezierPoints = function(PathMakerPoints, toSource){};
    PathMaker.prototype.extremities = function(points){};
    PathMaker.prototype.bounds = function(path){};
    PathMaker.prototype.tangent = function(t, points){};
    PathMaker.prototype.roundErrors = function(n, acurracy){};
    PathMaker.prototype.bezierTangent = function(path, t){};
    PathMaker.prototype.splitBezier = function(points, t){};
    PathMaker.prototype.arc = function(start, end){};
    PathMaker.prototype.getKappa = function(angle, start){};
    PathMaker.prototype.circle = function(radius, start, end, x, y, reverse){};
    PathMaker.prototype.ellipse = function(radiusX, radiusY, start, end, x, y , reverse/*, anchorPoint, reverse*/ ){};
    PathMaker.prototype.rotateArc = function(path /*array*/ , angle){};
    PathMaker.prototype.rotatePoint = function(point, origin, r){};
    PathMaker.prototype.roundErrors = function(n, acurracy){};
    PathMaker.prototype.rotate = function(path /*object or array*/ , R){};
    PathMaker.prototype.moveTo = function(path /*object or array*/ , x, y){};
    PathMaker.prototype.scale = function(path, x, y /* number X scale i.e. 1.2 for 120% */ ){};
    PathMaker.prototype.reverse = function(path){};
    PathMaker.prototype.pathItemPath = function(pathItem, toSource){};
    PathMaker.prototype.merge = function(path){};
    PathMaker.prototype.draw = function(item, properties){};
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.