Commit Graph

39 Commits

Author SHA1 Message Date
Dale Wijnand 6f52437e95
Fix a "discarded non-Unit value" warning in FileExamplesTest 2018-03-06 11:54:12 +00:00
Dale Wijnand fc73203d0b
Fix validID & expand tests
Make sure that we generate valid ID (according to matches(ID, s)) so
that we properly test the new validID implementation.

And that's what led to the bug fix. :)
2018-02-19 18:42:24 +00:00
Dale Wijnand d66d0e34a9
Add prop-based test for the validID re-impl 2018-02-19 15:00:21 +00:00
Johannes Rudolph 9370a2adf0
Speedup Parsers.validID
It turned up in profiling sessions. Previously, it used parser combinators
which are somewhat slow especially when the JVM is still cold.

The grammar for ID is simple enough to afford this handwritten parser.
2018-02-19 09:13:12 +01:00
Dale Wijnand 286758e2ba
Minor cleanups 2018-01-30 07:29:17 +00:00
Dale Wijnand 4a5ff4fc0d
Remove all warnings from completeProj 2017-12-12 13:02:19 +00:00
xuwei-k b8086e0768 make strict some methods in Completions 2017-11-23 15:21:02 +09:00
Simon Schäfer dc5411836a Fix warnings in util-copmlete project
There were warnings because of
- unused pattern match values
- deprecations
- unused methods (`def unary_-` and `def -`)
2017-10-19 13:07:24 +02:00
Dale Wijnand a41727fb17
Add, configure & enforce file headers 2017-10-05 09:03:40 +01:00
Eugene Yokota 33a01f3ceb Unified slash syntax
Fixes sbt/sbt#1812

This adds unified slash syntax for both sbt shell and the build.sbt DSL.
Instead of the current `<project-id>/config:intask::key`,
this adds `<project-id>/<config-ident>/intask/key` where <config-ident> is the Scala identifier notation for the configurations like `Compile` and `Test`.

This also adds a series of implicits called `SlashSyntax` that adds `/` operators to project refererences, configuration, and keys such that the same syntax works in build.sbt.

These examples work for both from the shell and in build.sbt.

    Global / cancelable
    ThisBuild / scalaVersion
    Test / test
    root / Compile / compile / scalacOptions
    ProjectRef(uri("file:/xxx/helloworld/"),"root")/Compile/scalacOptions
    Zero / Zero / name

The inspect command now outputs something that can be copy-pasted:

    > inspect compile
    [info] Task: sbt.inc.Analysis
    [info] Description:
    [info] 	Compiles sources.
    [info] Provided by:
    [info] 	ProjectRef(uri("file:/xxx/helloworld/"),"root")/Compile/compile
    [info] Defined at:
    [info] 	(sbt.Defaults) Defaults.scala:326
    [info] Dependencies:
    [info] 	Compile/manipulateBytecode
    [info] 	Compile/incCompileSetup
    [info] Reverse dependencies:
    [info] 	Compile/printWarnings
    [info] 	Compile/products
    [info] 	Compile/discoveredSbtPlugins
    [info] 	Compile/discoveredMainClasses
    [info] Delegates:
    [info] 	Compile/compile
    [info] 	compile
    [info] 	ThisBuild/Compile/compile
    [info] 	ThisBuild/compile
    [info] 	Zero/Compile/compile
    [info] 	Global/compile
    [info] Related:
    [info] 	Test/compile
2017-09-28 01:01:43 -04:00
kczulko e9fa4201fb Fix review issue. Add 't.restore' before function call. 2017-09-14 09:34:06 +02:00
kczulko b6a3ca1937 Fix for text echo issue when running sbt. 2017-09-11 11:49:10 +02:00
Dale Wijnand 805b76f3d4
Add back, re-configure & re-enable Scalafmt 2017-08-10 16:35:23 +01:00
Eugene Yokota 7b2b7d696b Don't wrap InputStream for Windows
Ref #3282

We used to wrap InputStream so it will inject Thread.sleep, which then allows the thread to be cancelled, emulating a non-blocking readLine. This trick doesn't seem to work for Windows.
For non-Cygwin, actually just removing the wrapping does the job, but I couldn't get it to work for Cygwin.

To test, run some command via network, and then type `show name` into the terminal. On Cygwin, it will not respond.
2017-07-22 03:34:10 -04:00
Dale Wijnand dc2d4d613f
Format in-sourced util modules 2017-07-07 12:12:59 +01:00
Dale Wijnand 9494967e05
Upgrade util/lm/zinc & config build for util modules
Welcome back home!
2017-07-07 12:11:59 +01:00
Eugene Yokota 1b19c504a4
Revert "Merge pull request #41 from eed3si9n/wip/2469"
This reverts commit 0da2f30ee8, reversing
changes made to 93418589b7.
2017-07-07 09:50:31 +01:00
Dale Wijnand 1526bf4f85
Remove deprecated methods 2017-07-07 09:50:28 +01:00
Dale Wijnand 95d52077db
Lazily concatenate failed errors for completion [forwardport] (#53)
* Fixes [sbt/sbt#2781]
* When using `<TAB>` completion the failed errors were always
  computed for mathcing projects even if there was no failure,
  leading to excessive computation of Levenshtein distances
  and a large lag (seconds) on builds with many matching
  projects.
2017-07-07 09:50:28 +01:00
Eugene Yokota d059b2f486
Handle sleep interruption 2017-07-07 09:50:24 +01:00
Eugene Yokota 43215db815
Trying to make readline timeout 2017-07-07 09:50:23 +01:00
Dale Wijnand 8cc4a54c40
Add -Ywarn-unused & -Ywarn-unused-import, & fix warnings 2017-07-07 09:50:21 +01:00
Dale Wijnand 5f2e56a5a8
Fix compilation warnings, migrate to blackbox.Context 2017-07-07 09:50:21 +01:00
Martin Duhem 27dee66399
Address problems reported by Codacy 2017-07-07 09:50:19 +01:00
Martin Duhem dca7a109ac
Completion for build-level keys
sbt's shell provided completion only for keys that were relative to a
defined project, but didn't provide completion for keys that belong to
the build definition only.

This commit fixes this issue by defining a new kind of `Parser` (from
which completions are generated) which runs its input simultaneously on
distinct parsers. We now define a parser for project-level keys and
another parser for build-level keys. These two parsers are eventually
combined, and we get the completions of both parsers.

Fixes sbt/sbt#2460
2017-07-07 09:50:18 +01:00
eugene yokota d4116b03f4
Fixes #2480. Workaround for Jline regression (#2570)
Workaround jline/jline2#205
2017-07-07 09:50:17 +01:00
Eugene Yokota d9bd056a29
Remove some warnings 2017-07-07 09:50:16 +01:00
Eugene Yokota 5811e8a257
Fixes #32. Don't inject thread sleep by default.
Thread sleeping interferes with scripted test when the build cannot be
loaded. The scripted test gets stuck, and jstack shows

    java.lang.Thread.State: TIMED_WAITING (sleeping)
      at java.lang.Thread.sleep(Native Method)
      at sbt.internal.util.InputStreamWrapper.read(LineReader.scala:138)
      at
jline.internal.NonBlockingInputStream.read(NonBlockingInputStream.java:2
45)
      ....
      at sbt.internal.util.JLine$.withJLine(LineReader.scala:118)
      at sbt.internal.util.JLine.readLine(LineReader.scala:18)
      at
sbt.BuiltinCommands$.sbt$BuiltinCommands$$doLoadFailed(Main.scala:460)
2017-07-07 09:50:13 +01:00
Eugene Yokota 1dfd9db2c7
Inject Thread.sleep periodically during read() to allow thread interruption 2017-07-07 09:50:12 +01:00
Eugene Yokota 972450db5d
Refactor nulls to Option 2017-07-07 09:50:12 +01:00
Eugene Yokota 2cefe315f2
New house rules 2017-07-07 09:50:08 +01:00
Martin Duhem 6eed17ad4e
Make `sbt.internal.util.JLine` private to sbt package
It was private to `sbt.internal.util`, but it is used in sbt's codebase.
2017-07-07 09:50:07 +01:00
Eugene Yokota 3bb53ae4fc
sbt.util.internal -> sbt.internal.util package 2017-07-07 09:50:05 +01:00
Eugene Yokota d93db4a634
migrate to scalatest 2.2.4 2017-07-07 09:50:05 +01:00
Eugene Yokota 53e719656f
Move util into sbt.util.internal package 2017-07-07 09:50:03 +01:00
Martin Duhem 6c7e69497f
Add recommended compiler flags, fix most of the warnings 2017-07-07 09:50:00 +01:00
Martin Duhem c0f55127db
Add sbt-houserules, formatting. 2017-07-07 09:49:59 +01:00
Martin Duhem 39d66c4602
Update IO library to sbt/IO v1.0.0-M1 2017-07-07 09:49:58 +01:00
Eugene Yokota 7f57853f23
move modules around. 2017-07-07 09:49:58 +01:00