我正在使用Scala,SBT 0.12和IntelliJ IDEA 12.1开发Lift Web框架的潜在模块,我想在IDEA中对*.sbt文件进行语法突出显示(代码感知将是一个奖励).
我有sbt的sbt-idea插件,它成功构建了我的IDEA项目.我还有IDEA的sbt插件,它允许我从IDEA的Run Configurations运行sbt命令.
当我将*.sbt文件与Scala文件类型相关联时,IDEA会在sbt脚本中显示各种错误.
是否有人使用*.sbt文件类型进行语法突出显示或代码感知?如果是这样,我该如何使用它?
谢谢!
我正在研究一个涉及在统一差异补丁中验证格式的问题.
内部格式中的变量一次可以跨越多行,因此我编写了一个生成器来拉动每一行并在变量完成时生成变量.
为了避免在从统一的diff文件中读取时必须重写此函数,我创建了一个生成器,用于在将行传递给内部格式验证器之前从行中剥离统一的diff字符.但是,我陷入了无限循环(在代码和我的脑海中).我已将问题抽象为以下代码.我确信有更好的方法可以做到这一点.我只是不知道它是什么.
from collections import Iterable
def inner_format_validator(inner_item):
# Do some validation to inner items
return inner_item[0] != '+'
def inner_gen(iterable):
for inner_item in iterable:
# Operates only on inner_info type data
yield inner_format_validator(inner_item)
def outer_gen(iterable):
class DecoratedGenerator(Iterable):
def __iter__(self):
return self
def next(self):
# Using iterable from closure
for outer_item in iterable:
self.outer_info = outer_item[0]
inner_item = outer_item[1:]
return inner_item
decorated_gen = DecoratedGenerator()
for inner_item in inner_gen(decorated_gen):
yield inner_item, decorated_gen.outer_info
if __name__ == '__main__':
def wrap(string):
# The …Run Code Online (Sandbox Code Playgroud) 我想在watchedSources设置中添加一个目录,以便在我在该目录中保存文件时触发构建任务.
override def baseProject = play.Project(
moduleName,
moduleVersion,
dependencies = libraries,
path = file(location),
settings = moduleSettings ++ Seq(
watchSources <++= baseDirectory map { dir =>
Seq(
dir / "src/main/javascript"
)
}
)
)
Run Code Online (Sandbox Code Playgroud)
我似乎无法解决以下错误:
type mismatch;
[error] found : sbt.Project.Initialize[ScalaObject with Equals]
[error] required: sbt.Project.Initialize[sbt.Task[?]]
[error] Note: ScalaObject with Equals >: sbt.Task[?], but trait Initialize is invariant in type T.
[error] You may wish to define T as -T instead. (SLS 4.5)
[error] watchSources <++= baseDirectory { f => …Run Code Online (Sandbox Code Playgroud) sbt ×2
coffeescript ×1
decorator ×1
generator ×1
iterator ×1
python ×1
sbt-idea ×1
scala ×1
validation ×1