如何让Intellij调试器将标准自定义scala monad视为标准monad?

时间:2017-09-13 16:36:57

标签: scala debugging intellij-idea monads

如果我对像

这样的列表有一个scala for-understanding
def getList: List[A]
def doSomeStuff(a: A): List[B]

for {
  a <- getList
  x <- doSomeStuff(a)
} yield x

我使用Intellij中的调试器逐步完成它,调试器非常聪明,不会进入List类的内部map / flatMap实现。我可以检查getListdoSomeStuff来电,而不用考虑在后台工作的monad管道。

然而,当我实现自己的monad时,调试器的行为方式并不相同,它会直接进入并显示monad实现的所有内容。虽然这对于初始调试monad很有用,但是使调试使用monad的代码变得更加困难。有没有办法让调试器像处理标准库一样处理自定义monad,这样在调试代码时没有人会疯狂?

1 个答案:

答案 0 :(得分:0)

this document中解释了如何从调试器中排除特定的包或类。如果您的monad与您想要调试的代码隔离得足够多,则可以将其添加到排除列表中。