小编Kei*_*ris的帖子

为单个文件设置语法突出显示

我经常写小命令行实用程序,并将使用替代语言来创建这些脚本(例如node.js,php等).当我创建这些文件时,我使用标准#!来启动文件以向shell指示解释器应该是什么.例如,对于node.js脚本,我将它放在顶部:

#!/usr/bin/env node

在PHPStorm/WebStorm中,只要文件具有扩展名,语法突出显示就可以正常工作,.js但如果我删除扩展名,则没有语法突出显示.在SublimeText中,我可以使用命令托盘通过键入Ctrl + P/Cmd + P + SSJS(设置语法JavaScript)将当前文件的语法设置为JavaScript(例如)

JetBrains IDE中是否有任何方法可以设置单个文件的语法,而不仅仅是根据文件扩展名注册文件类型?

php shell node.js phpstorm webstorm

8
推荐指数
1
解决办法
3389
查看次数

MSBuild脚本默认属性最佳实践说明

在构建MSBuild脚本时,我需要定义一系列默认属性,但在运行脚本时可以重写.根据以下文章,您应该使用条件来默认属性:

http://msdn.microsoft.com/en-us/library/ee240983.aspx

Microsoft如何建议:

<PropertyGroup>
    <MyProperty Condition="'$(MyProperty)' == '' ">Default Value</MyProperty>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

但是,这行为完全相同:

<PropertyGroup>
    <MyProperty>Default Value Without Conditional</MyProperty>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

所以,如果我有这个Target并使用上述任何一个调用它,它具有相同的行为:

<Target Name="DefaultsTest">
    <Message Text="$(MyProperty)"></Message>
</Target>
Run Code Online (Sandbox Code Playgroud)

调用:

msbuild build.xml /t:DefaultsTest /p:MyProperty="Overridden value"

Condition如果您只是默认可以从调用中覆盖的相同属性,请解释使用该属性的好处?

更新:

这是一个完整的简单配置文件来演示: defaults.xml

<?xml version="1.0" encoding="utf-8" ?>
<Project DefaultTargets="DefaultsTest" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <MyProperty Condition=" '$(MyProperty)' == '' ">MyProperty with Conditional</MyProperty>
        <MyOtherProperty>MyOtherProperty without Conditional</MyOtherProperty>
    </PropertyGroup>

    <Target Name="DefaultsTest">
        <Message Text="$(MyProperty)"></Message>
        <Message Text="$(MyOtherProperty)"></Message>
    </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

这可以简单地运行 msbuild defaults.xml

要么

msbuild defaults.xml /p:MyProperty="Changed Value" /p:MyOtherProperty="Changed as well"

msbuild automation

5
推荐指数
1
解决办法
2064
查看次数

标签 统计

automation ×1

msbuild ×1

node.js ×1

php ×1

phpstorm ×1

shell ×1

webstorm ×1