# HG changeset patch # User rfield # Date 1497382288 25200 # Node ID a13e5e2ee35e1868e037e6f0141b30e5bb00b8ae # Parent 365640343c5552047906fa9454703e1c4a3c3d87 8180306: jshell tool: /help -- confusing identifier in feedback mode examples 8179048: jshell tool: /help -- references to "/reset or /reload" should add /env 8179046: jshell tool: /help /edit is missing -all and -start 8181950: jshell tests: longer help documentation breaks tests because of paging Reviewed-by: jlahoda diff -r 365640343c55 -r a13e5e2ee35e langtools/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContext.java --- a/langtools/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContext.java Tue Jun 13 11:21:09 2017 -0700 +++ b/langtools/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContext.java Tue Jun 13 12:31:28 2017 -0700 @@ -43,7 +43,6 @@ import java.util.Locale; import java.util.Map; import java.util.Optional; -import java.util.function.BooleanSupplier; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -962,6 +961,7 @@ this.input = input; } + @Override public boolean isRaw() { try { return getSettings().get("-a").contains("-icanon"); @@ -1053,12 +1053,23 @@ private static final class TestTerminal extends TerminalSupport { private final StopDetectingInputStream input; + private final int height; public TestTerminal(StopDetectingInputStream input) throws Exception { super(true); setAnsiSupported(false); setEchoEnabled(false); this.input = input; + int h = DEFAULT_HEIGHT; + try { + String hp = System.getProperty("test.terminal.height"); + if (hp != null && !hp.isEmpty()) { + h = Integer.parseInt(hp); + } + } catch (Throwable ex) { + // ignore + } + this.height = h; } @Override @@ -1066,6 +1077,11 @@ return input.setInputStream(super.wrapInIfNeeded(in)); } + @Override + public int getHeight() { + return height; + } + } private interface SuspendableTerminal { diff -r 365640343c55 -r a13e5e2ee35e langtools/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n.properties --- a/langtools/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n.properties Tue Jun 13 11:21:09 2017 -0700 +++ b/langtools/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n.properties Tue Jun 13 12:31:28 2017 -0700 @@ -249,6 +249,11 @@ Edit the snippets with the specified snippet ids\n\n\ /edit -\n\t\ Edit the snippets within the range of snippet ids\n\n\ +/edit -start\n\t\ + Edit the automatically evaluated start-up snippets. Any changes are in this\n\t\ + session, and do not affect the start-up setting\n\n\ +/edit -all\n\t\ + Edit all snippets including failed, overwritten, dropped, and start-up\n\n\ /edit\n\t\ Edit the currently active snippets of code that you typed or read with /open @@ -393,7 +398,7 @@ recent.\n\n\ /reload -restore\n\t\ Reset and replay the valid history between the previous and most\n\t\ - recent time that jshell was entered, or a /reset, or /reload\n\t\ + recent time that jshell was entered, or a /reset, /reload, or /env\n\t\ command was executed. This can thus be used to restore a previous\n\t\ jshell tool session.\n\n\ /reload [-restore] -quiet\n\t\ @@ -695,18 +700,18 @@ error1 -- one error\n\t\ error2 -- two or more errors\n\n\ Examples:\n\t\ -/set format myformat action 'Created' added-primary\n\t\ -/set format myformat action 'Update replaced' replaced-update\n\t\ -/set format myformat display '{pre}{action} class {name}{post}' class-ok\n\t\ -/set format myformat display '{pre}{action} variable {name}, reset to null{post}' replaced-vardecl,varinit-ok-update\n\n\ +/set format mymode action 'Created' added-primary\n\t\ +/set format mymode action 'Update replaced' replaced-update\n\t\ +/set format mymode display '{pre}{action} class {name}{post}' class-ok\n\t\ +/set format mymode display '{pre}{action} variable {name}, reset to null{post}' replaced-vardecl,varinit-ok-update\n\n\ Note that subsequent selectors for a field may overwrite some or all of previous used selectors -- last one wins\n\ \n\ The form without shows the current format settings.\n\ When the is specified only the format settings for that mode are shown.\n\ When both the and are specified only the format settings for that\n\ mode and field are shown. Example:\n\t\ -/set format myformat\n\ -shows the format settings for the mode myformat\n +/set format mymode\n\ +shows the format settings for the mode mymode\n help.set.truncation = \ Set the max length of a displayed value:\n\ @@ -745,8 +750,8 @@ The form without shows the truncation settings.\n\ When the is specified only the truncation settings for that mode are shown.\n\ Example:\n\t\ -/set truncation myformat\n\ -shows the truncation settings for the mode myformat\n +/set truncation mymode\n\ +shows the truncation settings for the mode mymode\n help.set.feedback = \ Set the feedback mode describing displayed feedback for entered snippets and commands:\n\ @@ -818,9 +823,9 @@ Note: the settings for the mode include the settings for prompt, format, and\n\ truncation.\n\ Example:\n\t\ -/set mode myformat\n\ +/set mode mymode\n\ \n\ -shows the mode, prompt, format, and truncation settings for the mode myformat +shows the mode, prompt, format, and truncation settings for the mode mymode help.set.prompt = \ Set the prompts. Both the normal prompt and the continuation-prompt must be set:\n\ @@ -840,8 +845,8 @@ The form without shows the currently set prompts.\n\ When the is specified only the prompts for that mode are shown.\n\ Example:\n\t\ -/set prompt myformat\n\ -shows the prompts set for the mode myformat\n +/set prompt mymode\n\ +shows the prompts set for the mode mymode\n help.set.editor =\ Specify the command to launch for the /edit command:\n\ diff -r 365640343c55 -r a13e5e2ee35e langtools/test/jdk/jshell/MergedTabShiftTabCommandTest.java --- a/langtools/test/jdk/jshell/MergedTabShiftTabCommandTest.java Tue Jun 13 11:21:09 2017 -0700 +++ b/langtools/test/jdk/jshell/MergedTabShiftTabCommandTest.java Tue Jun 13 12:31:28 2017 -0700 @@ -44,6 +44,9 @@ public class MergedTabShiftTabCommandTest extends UITesting { public void testCommand() throws Exception { + // set terminal height so that help output won't hit page breaks + System.setProperty("test.terminal.height", "1000000"); + doRunTest((inputSink, out) -> { inputSink.write("1\n"); waitOutput(out, "\u0005");