小编Jef*_*May的帖子

IntelliJ IDEA中*.sbt文件的语法高亮显示

我正在使用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文件类型进行语法突出显示或代码感知?如果是这样,我该如何使用它?

谢谢!

scala syntax-highlighting intellij-idea sbt sbt-idea

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

在python中调用next之前修改迭代器以改变值的好方法是什么?

我正在研究一个涉及在统一差异补丁中验证格式的问题.

内部格式中的变量一次可以跨越多行,因此我编写了一个生成器来拉动每一行并在变量完成时生成变量.

为了避免在从统一的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)

python validation iterator generator decorator

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

在SBT设置中将目录附加到监视源

我想在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 coffeescript playframework-2.0

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