我刚刚加入了Visual Studio Code的潮流,但是我遇到了我的第一个交易破坏者:我无法让它自动完成我在一个包含的“config.php”文件中设置的变量,我会设置变量喜欢:
$some_var = 'something';
然后在另一个文件中我将包括:
<?php
include 'config.php';
// etc.......
然后,在这个文件中,我应该能够开始输入$som
并点击TAB或ENTER并完成$some_var
(可能需要输入更多的字母或者如果其他人匹配前几个字符则选择我真正想要的...)
有了所有这个编辑器,我可以把它打开,这不是开箱即用的东西!?真的让我想知道我是否遗漏了一些东西......显然它可以防止错误/错别字...更不用说只是打字的时间了。
无论如何,这就是我所做的:
在欢迎屏幕上有“我做什么”的常用选项,我使用了php和javascript选项;没有键绑定
然后我开始安装其他一些看起来很有前途的扩展,并且在某些时候发现了这个问题...
我卸载了所有扩展,只选择了PHP选项,没有骰子。
然后我开始添加几个“PHP ________”扩展,包括;智能感知,Intelephense,自动完成等...一个一个并卸载,如果它不起作用,以防万一有冲突 - 仍然没有运气(显然)。
我想念的是什么人!?我还没有看到有人问过这件事...我希望我只是过于复杂了,而且我忽略了一些简单的事情......
谢谢。
物有所值:
如果我在浏览器中打开测试文件并回显包含的变量,它们就在那里。
我正在使用LAMP运行Mint xfce:
php -v
PHP 7.2.15-0ubuntu0.18.04.1 (cli) (built: Feb 8 2019 14:54:22) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.15-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies
我的settings.json有一些我自己添加/试过的自定义内容:
// PHP TROUBLESHOOTINGS:
//"files.associations": {"*.php": "html"},
"files.autoGuessEncoding": true,
"files.defaultLanguage": "php",
"php.suggest.basic": true,
"editor.quickSuggestions": {
"other": true,
"comments": true,
"strings": true
},
好吧,所以我一直在四处寻找......
我找到了一个扩展“用于VS代码的PHP工具,由DEVSENSE”它以某种方式使这个功能工作......但它是一个付费的扩展$ 179设置,和98美元/年后(个人它是79美元,然后49美元续订) 。
但是,这告诉我VS代码是可能的......
我已经使用Dreamweaver十多年了,并且已经习惯了这个功能 - 但是我已经转移到了Linux,这对Adobe来说并不好用......而且,我讨厌为软件重复计费的想法我买 - 如果他们做出新的和惊人的东西,我会买它......但据我估计,DW几年没有任何创新;所以我很高兴解雇Adobe(并找到了VS Code - 这非常棒)。
无论如何,我想是什么让我烦恼;我的基本文本编辑器“Xed”(随XFCE一起安装)具有这种能力,以及Vi(和衍生物),Geany和Bluefish ......以及显然是phpstorm等...可能还有很多其他我没有试过。
底线;看起来基本功能应该是开箱即用的...而且除了VS Code的所有其他真正的INSANE功能之外,我感到震惊的是没有简单的方法来实现它(扩展或其他);我希望合适的人看到这一点并对此采取行动;)
我不想在这里看起来忘恩负义,这个VS Code计划及其周围的社区真是太棒了 - 我将继续使用它,至少在中期......
我的“创可贴修复”:我刚刚根据我在配置文件中拥有的十几个常见变量创建了一些用户片段,例如:
"$username": {
"prefix": "$usr",
"body": [
"\\$username"
],
"description": "inserts the PHP $username variable"
}
感谢您的关注......并忍受我的咆哮 - 如果您有任何其他想法,请随意。
附:我确实看到Intellisense - Crane他们在发布v0.3.7上有一个注释,它说“修复了在Linux上包含文件的问题”......但是,显然不是吗? ;)我甚至不能100%确定解决方案正在解决我的问题,但有趣的是看到。