Erik Temple

My feedback

  1. 1 vote
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)
      You have left! (?) (thinking…)
      planned  ·  2 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
      Erik Temple commented  · 

      To clarify, while there aren't many phrases that refer to entries in/of lists, some of these phrases allow "of" alongside "in," while most do not. Tables allow "from" alongside "in" in all cases, I believe, but never "of". Yet for both lists and tables, "of" is what I *want* to type.

      Here is an (untested and possibly incomplete) compilation of the phrases that would be required to add the requested feature:

      To choose a/the/-- row (N - number) in/from/of (T - table name):
      (- {-require-ctvs}ct_0 = {T}; ct_1 = {N}; -).

      To choose a/the/-- row with (TC - K valued table column) of (w - value of kind K)
      in/from/of (T - table name):
      (- {-require-ctvs}ct_0 = {T}; ct_1 = TableRowCorr(ct_0, {TC}, {w}); -).

      To choose a/the/-- blank row in/from/of (T - table name):
      (- {-require-ctvs}ct_0 = {T}; ct_1 = TableBlankRow(ct_0); -).

      To choose a/the/-- random row in/from/of (T - table name):
      (- {-require-ctvs}ct_0 = {T}; ct_1 = TableRandomRow(ct_0); -).

      To decide which number is number of rows in/from/of (T - table name)
      (documented at ph_numrows):
      (- TableRows({T}) -).

      To decide which number is number of blank rows in/from/of (T - table name)
      (documented at ph_numblank):
      (- TableBlankRows({T}) -).

      To decide which number is number of filled rows in/from/of (T - table name):
      (- TableFilledRows({T}) -).

      To blank out the whole (TC - table column) in/from/of (T - table name):
      (- TableBlankOutColumn({T}, {TC}); -).

      To add (new entry - K) at entry (E - number) in/of (L - list of values of kind K), if absent:
      (- LIST_OF_TY_InsertItem({-pointer-to:L}, {new entry}, 1, {E}, {phrase options}); -).

      To add (LX - list of Ks) at entry (E - number) in/of (L - list of values of kind K):
      (- LIST_OF_TY_AppendList({-pointer-to:L}, {-pointer-to:LX}, 1, {E}, 0); -).

    • 2 votes
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        Signed in as (Sign out)
        You have left! (?) (thinking…)
        4 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
        Erik Temple commented  · 

        I agree that a "no graphics" option is the best option for authors wanting to police this stuff. You could have Flexible Windows automatically refuse to open graphics windows on unsupported terps, but this could create worse issues if, say, the graphics window was itself supposed to spawn a text window that contains critical game content...

        To tell the truth, I currently use Quixe as my no-graphics option for testing. But when it's upgraded, that won't be an option any longer (unless you could pass the no-graphics and one-window options in via the url).

      • 3 votes
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          Signed in as (Sign out)
          You have left! (?) (thinking…)
          4 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
          Erik Temple commented  · 

          It would also be nice if more than one non-object value (e.g. topic, number, etc.) could be understood. The current limit is two objects, one non-object value.

          @poster: Inform can already process "if" statements like your example quite well. This request is about grammar for the player's command.

        • 9 votes
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            Signed in as (Sign out)
            You have left! (?) (thinking…)
            2 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
            Erik Temple commented  · 

            @Emily: That makes sense. Still, the problem remains: For newer users, it is confusing to have to click multiple paste buttons in order to paste a code example. Even experienced users (based on comments that have been emailed to me) may not realize that they need to paste multiple times--precisely because they have learned on the main documentation examples, and the extension examples otherwise look the same.

            Extensions are already filled with arcane markup, and the only way to learn how to format them is to study other extensions. I don't think it would be too much to ask of extension authors that they, say, put angle brackets or some other markup around comments that are intended to appear within paste blocks.

            Alternatively, a less ideal but perfectly acceptable solution would be to allow comments to appear in extension example code. Currently they simply vanish in the prettified version of the code. (This, together with the problem discussed above, makes it very difficult to write literate code for extension users!) I can't think of any good reason for the zapping of comments, though there may be one...

            Erik Temple shared this idea  · 
          • 42 votes
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              Signed in as (Sign out)
              You have left! (?) (thinking…)
              4 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
              Erik Temple commented  · 

              The current division of the source code into two linked panes (Contents and Source) is an improvement over the single source pane of early builds, but it can be pretty awkward to use. I'd like to see sections in the main source pane made collapsible, so that you could, e.g., click an icon alongside a heading and thereby hide or show all the code within that heading. With a couple of keyboard shortcuts/modifier keys (e.g., collapse all headings, expand all headings, collapse all the headings except for the one I just clicked), this would allow the source pane alone to act as a table of contents, with no switching to a second tab or a second source-browsing mode (that is, the torn-page mode) necessary.

              This feature is often found for individual functions in text editors, e.g.: http://manual.macromates.com/en/navigation_overview#collapsing_text_blocks_foldings

              Erik Temple shared this idea  · 
            • 4 votes
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                Signed in as (Sign out)
                You have left! (?) (thinking…)
                0 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
                Erik Temple supported this idea  · 
              • 17 votes
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                  10 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
                  Erik Temple commented  · 

                  @Lucian:

                  I don't think there's ever any need for multiple consecutive spaces in a table except within quotes (i.e., when the author has specified them for display reasons); spaces don't have semantic value in Inform. I'd think it would be straightforward to replace multiple spaces with tabs outside of quotes, while simply ignoring multiple spaces w/in quotation marks. (In any case, I believe that the I7 compiler silently converts tabs w/in quotes to spaces when producing the game file.)

                  Erik Temple commented  · 

                  @vaughany: Just to clarify why this feature is needed: tabs are semantic in I7, so losing them when converting to/from HTML is more than cosmetic.

                  Erik Temple commented  · 

                  For the record, my sentiments are similar to Ron's--I think the best way to do this is option 2 in the OP, with option 1 less good, but better than nothing.

                  @Ron: "the thing in the comment I don't even know what problem it solves. Mine's always been getting tabbed stuff INTO the IDE, not any issues getting spaces out of the IDE. Generally, I like getting tabs out of the IDE, cause I"m pasting to a text field."

                  The reason for that suggestion is that some text fields eat tabs. But I don't consider it very important either. (As the original comment suggests, I also think it could be pretty annoying.)

                  Erik Temple commented  · 

                  I suppose the IDE could also convert tabs to spaces on clipboard export. In other words, when we have text on the clipboard and switch from Inform to some other application, Inform would convert any tabs in the clipboard to spaces.

                  However, this could potentially be annoying and/or mystifying. Thoughts?

                  Erik Temple shared this idea  · 
                • 1 vote
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                    planned  ·  5 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
                    Erik Temple commented  · 

                    I think you don't see more votes on this because the status is already listed as "planned" and the roadmap for revision is laid out in the proposal. Any votes you put here are pretty well wasted.

                  • 2 votes
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      1 comment  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
                    • 8 votes
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        9 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
                        Erik Temple commented  · 

                        ...and another family of requests that might be able to be accomodated if extension inclusions were reformed:

                        http://inform7.uservoice.com/forums/57320-general/suggestions/750974-add-use-options-to-control-compilation?ref=title

                        Erik Temple commented  · 

                        Re the "double inclusion" problem (point 1 from the bottom of the OP):

                        FWIW, I updated GSWC enough to retest this, and it doesn't seem to be a problem under 5E69. I don't have the files any more to retest under 5Z71, but since I spent hours wrestling with this before sending in the feature request, I'm reasonably sure that double inclusion caused errors then.... In any case, it seems at least tentatively that we can regard (1) as closed.

                        Points 2 and 3 remain worthwhile:

                        (2) Inform should allow OR and AND logic in the "for use with/without..." include directives;
                        (3) Inform should search all included extensions in the "tree" before deciding whether an extension meets the "for use with/without condition".

                        There are potentially other issues that a reform of the extension inclusion framework could address, e.g.: http://inform7.com/mantis/view.php?id=98

                        Erik Temple commented  · 

                        @Ron: "Maybe you are referring only to this:

                        Section - (for use without Glulx Text Effects by Emily Short)
                        Include Glulx Text Effects by Emily Short.

                        ..which if that throws an error, ok, but why would anyone write that in the first place? If the including extension needs the GTE extension, include it. Don't worry about whether the other extensions also need it. Is there a reason to write that bit of code?
                        ....
                        OP wrote: "But that doesn't work, because Inform only looks for the inclusion of Glulx Text Effects in the current project, not in the other extensions."

                        Ron, the code you cite in the quote above was not an issue in itself. As the original post says, it was an attempt at a solution that failed to quell the compilation errors that arose from double inclusion of GTE in projects made with Glulx Status Window Control. (The idea behind that code was to try to include GTE *only if it had not already been included*--thus avoiding the double inclusion problem.)

                        Leaving aside the question of whether the order in which Inform looks at headings and extensions would allow this to work or not, this code *actually* failed to have an effect because Inform only looks at the *story file's* inclusions when it's deciding which extensions are available for "for use with/out" headers. It does not look at the inclusions of included extensions for this purpose, which is a bad deal.

                        So, this is an illustration of point 3 in the original post (repeated in the initial summarization comment); it has nothing directly to do with point 1.

                        (If you're feeling skeptical, here's a quick test that you can run to confirm that this is the case.)

                        -----Extension-------
                        Test Extension by Erik Temple begins here.

                        When play begins when the player is a person:
                        say "Testing...";
                        continue the action.

                        Section - Testing (for use without Glulx Text Effects by Emily Short)

                        When play begins:
                        say "It worked!"

                        Test Extension ends here.
                        --------------------------

                        -------Story file-------

                        "Test"

                        Include Flexible Windows by Jon Ingold.
                        Include Test Extension by Erik Temple.

                        Test is a room.

                        ---------------------------

                        Erik Temple commented  · 

                        The original post explains this, though maybe a bit too obliquely--Inform does quite poorly with this kind of checking once you get into multiple paths of inclusion. That is, if you include an extension that includes the target extension, and also include the target exclusion in your source directly, you will get those compilation errors. (If you don't believe, try recreating the situation described in the original post using the extensions mentioned.)

                        Erik Temple commented  · 

                        The suggestion is long, but the problem is very real--modular systems of extensions in particular really suffer from Inform's lack of sophistication. Here are the three concrete suggestions that are wrapped up in this (quoting from the original request):

                        (1) Inform should ignore repeated include directives to the same extension;
                        (2) Inform should allow OR and AND logic in the "for use with/without..." include directives;
                        (3) Inform should search all included extensions in the "tree" before deciding whether an extension meets the "for use with/without condition".

                        Erik Temple supported this idea  · 
                      • 0 votes
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          planned  ·  1 comment  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
                          Erik Temple commented  · 

                          "now L is empty" is a good syntax, but FYI you can do this now without invoking the truncation phrase:

                          now L is {}.

                        • 1 vote
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            1 comment  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
                          • 1 vote
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                              4 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
                              Erik Temple commented  · 

                              Regardless of whether the tab key does this, it needs to be doable in extensions as well as story files. In the OS X IDE, the hotkey/contextual menu works only in the story file (project window), not in extension windows. Extensions require indenting entire code examples, so the feature is especially needed there: http://inform7.uservoice.com/forums/57320-general/suggestions/862257-ide-enable-shifting-of-code-blocks-in-extensions

                              Erik Temple commented  · 

                              I think the tab key makes for a quick and natural way to do this, and is quite common in other text editors. I would like to see this move to the other IDEs (I'm out of votes, though...)

                            • 1 vote
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                                under review  ·  0 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
                                Erik Temple shared this idea  · 
                              • 14 votes
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  6 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
                                  Erik Temple supported this idea  · 
                                  Erik Temple commented  · 

                                  Yes, and we could do the same with more work in previous builds (setting up individual phrases for each type). But this is only half the battle. For this to be a complete feature, you need to be able to initialize properties and values to "nothing" as well as assign them after initialization. This is actually what the request is aimed at (and why I said that it would probably have to be special-case handled by NI). However, if we combined the "to decide" phrase with this suggestion:

                                  http://inform7.uservoice.com/forums/57320-general/suggestions/751122-syntax-allow-for-properties-of-objects-to-be-def

                                  ...then we would have the whole enchilada, w/o having to change much at all.

                                • 0 votes
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    4 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
                                    Erik Temple commented  · 

                                    I guess we should note that this is really a sub-division of a more general request: That there be a special class of constant that would be usable in initial property and variable declarations and that would evaluate to the type-specific null value for each type--this would probably be expressed as "nothing" in I7-level source code. (I imagine this would need to be handled at the I7 compiler level, rather than in the template layer.)

                                    The secondary, glulx-resource-specific request would be that figure and sound names default to null rather than to a given resource number (such as the cover art).

                                    Erik Temple commented  · 

                                    Not that it really matters, but this should probably be listed as "declined" rather than "completed". Neither the new I6 representation or the "default value of figure name" (which can't be used to set the value, only to read it) have much bearing on the question: The problem the request is meant to address remains--the I7 compiler still assigns the default value for figure name to the cover art, and so one has to create a separate "null figure" and manually specify that as the default figure name for every possible property/variable (the default should be nothing, not the cover art--otherwise your I6 drawing/sound-playing routines can't distinguish cover art from a property or variable that the author has left undefined).

                                  • 6 votes
                                    Vote
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      under review  ·  1 comment  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
                                      Erik Temple supported this idea  · 
                                    • 4 votes
                                      Vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                        2 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
                                        Erik Temple supported this idea  · 
                                      • 6 votes
                                        Vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          4 comments  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
                                          Erik Temple commented  · 

                                          Another use for conditional compilation: debugging commands. Debugging commands can be done using "(not for release)", but that isn't actually very useful--you very well may want debugging commands in a release build. A use option would let you completely eliminate the code within the block from both the test build and the released file when it wasn't wanted. (Currently, the best way to do this is by using a separate extension whose sole purpose is to serve as a hook in a "(for use only with ... )" section header; see Extended Debugging.)

                                        • 0 votes
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                            1 comment  ·  General  ·  Flag idea as inappropriate…  ·  Admin →
                                            Erik Temple commented  · 

                                            It seems to me that, eventually, there ought to be a more comprehensive approach to windowing, where authors can intervene in many aspects of the process--when to open the status window, how to style it, etc. I'm not sure the time is now, but particularly for Glulx, it seems like a good idea to provide either library support or an official extension that approaches this comprehensively. (For glulx, this would likely be a descendant of Flexible Windows.)

                                          ← Previous 1

                                          Feedback and Knowledge Base