
Tenkawa เป็นเซิร์ฟเวอร์ภาษาสำหรับ PHP ด้วยการวิเคราะห์แบบคงที่และเครื่องยนต์การอนุมานที่ยืมมาโดยไม่ต้องถามจาก phpstan
ยังคงทดลอง แต่ควรใช้งานได้ รายงานข้อผิดพลาดใด ๆ คำขอคุณสมบัติคำแนะนำคำถามยินดีต้อนรับ
ต้องใช้ PHP> = 7.1 ด้วยส่วนขยาย PDO_SQLITE
สำหรับส่วนขยายรหัส Visual Studio ดูที่นี่
ไม่ว่าจะด้วย composer create-project ( ~ Directory เป็นตัวอย่าง):
$ cd ~
$ composer create-project --no-dev --keep-vcs
tsufeki/tenkawa-php-language-server tenkawa/หรือโดยการโคลนนิ่ง repo:
$ cd ~
$ git clone https://github.com/tsufeki/tenkawa-php-language-server.git tenkawa/
$ cd tenkawa/
$ composer install --no-dev
$ cd ..สร้างดัชนีของไลบรารีมาตรฐาน:
$ php ~ /tenkawa/bin/tenkawa.php --build-indexตอนนี้กำหนดค่าไคลเอนต์ของคุณเพื่อเริ่มเซิร์ฟเวอร์ด้วยคำสั่งนี้เพื่อใช้ stdio:
php ~ /tenkawa/bin/tenkawa.phpหรือเพื่อเชื่อมต่อกับซ็อกเก็ต TCP:
php ~ /tenkawa/bin/tenkawa.php --socket=tcp://127.0.0.1:12345ยังไม่ได้ใช้งาน (ยัง?):
--socket=<socket> ต> -เชื่อมต่อกับซ็อกเก็ตแทนการสื่อสารผ่าน stdio รูปแบบที่อนุญาต: tcp://127.0.0.1:12345 หรือ unix:///path/to/socket--log-stderr บันทึกไปยัง Stderr--log-file=<file> -บันทึกไปยังไฟล์ที่กำหนด--log-client บันทึกโดยใช้วิธีการของ window/logMessage โปรโตคอล--log-level=<level> -บันทึกเฉพาะข้อความของระดับที่กำหนดขึ้นไป <level> สามารถเป็นหนึ่งใน emergency alert critical error warning notice info debug ค่าเริ่มต้นเป็น info--build-index สร้างดัชนีไลบรารีมาตรฐานแทนการเริ่มต้นเซิร์ฟเวอร์--config-json=<json> -ตัวเลือกเริ่มต้นดูการกำหนดค่า ตัวอย่าง: --config-json={"completion":{"autoImport":false}} คุณสามารถผ่านตัวเลือกการกำหนดค่าไปยังเซิร์ฟเวอร์ผ่าน initializationOptions พารามิเตอร์ของ initialize เมธอดโปรโตคอลหรือโดยการใช้งานคำขอ workspace/configuration และการส่งการแจ้งเตือน workspace/didChangeConfiguration จากไคลเอนต์
ตัวเลือกที่ได้รับการยอมรับ:
{
"tenkawaphp" : {
"diagnostics" : {
"phpstan" : {
// Enable PHPStan diagnostics.
"enabled" : true
}
} ,
"completion" : {
// Enable automatic import (use) of completed classes.
"autoImport" : true ,
// By default, only some PHP extensions are used for autocompletion.
// Additional ones can be enabled here.
"extensions" : [ "mysqli" , "redis" ]
} ,
"index" : {
// Additional stubs directories
"stubs" : [ "/path/to/stubs/dir" ]
}
}
} ลิขสิทธิ์ (c) 2017 Tsufeki
โปรแกรมนี้เป็นซอฟต์แวร์ฟรี: คุณสามารถแจกจ่ายใหม่และ/หรือแก้ไขภายใต้ข้อกำหนดของใบอนุญาตสาธารณะ GNU ทั่วไปที่เผยแพร่โดย Free Software Foundation ไม่ว่าจะเป็นเวอร์ชัน 3 ของใบอนุญาตหรือ (ตามตัวเลือกของคุณ) รุ่นใหม่ ๆ
โปรแกรมนี้มีการแจกจ่ายด้วยความหวังว่าจะมีประโยชน์ แต่ไม่มีการรับประกันใด ๆ โดยไม่มีการรับประกันโดยนัยเกี่ยวกับความสามารถในการค้าหรือความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ ดูใบอนุญาตสาธารณะ GNU ทั่วไปสำหรับรายละเอียดเพิ่มเติม
คุณควรได้รับสำเนาใบอนุญาตสาธารณะ GNU ทั่วไปพร้อมกับโปรแกรมนี้ ถ้าไม่ดู http://www.gnu.org/licenses/