Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Console content truncated

NppExec
Anonymous
2012-10-02
2013-05-21

  • Anonymous
    2012-10-02

    I am trying Microsofts TypeScript compiler output to show up in NPPEXEC console and I am stuck because my output is truncated.

    I installed TypeScripts Node.js version and created a new .ts file that would create a compiler message (the example is taken from http://www.typescriptlang.org/Tutorial/). Running the compiler on command line the following line appears:

    C:/Users/stefan.reimers/Downloads/helloworld.ts(7,26): Supplied parameters do not match any signature of call target

    But when I use NPPEXEC with the following:

    NPP_SAVE
    cmd /c tsc.cmd $(FULL_CURRENT_PATH)
    

    all I get is:

    Process started >>>
    C:/Users/stefan.reimers/Downloads/helloworld.ts(7,26): <<< Process finished.

    I tried all combination of input/output encoding - nothing helped.

    Does anyone have a clue how to show all of the compiler messages?
    thx

     
  • DV
    DV
    2012-10-03

    I have no idea what is Node.js and what is required for this to be run.  Please specify what is needed to be downloaded and installed to run the thing you mentioned. 
    Please additionally provide either step-by-step instructions or a direct link where such step-by-step instruction is present. 

     

  • Anonymous
    2012-10-04

    Okay, first of all, TypeScript can be seen as an extension to JavaScript. You can create TypeScript files with a syntax that is very familiar to JS programmers but also define classes, modules and interfaces. That gives to JS more structure. The compiler is run on command line and produces JS code which can be run on every browser.

    That said, for the typescript compiler to be run you can either use Visual Studio (which I don't) or Node.js, a JavaScript server. Go to nodejs.org, hit the download button and choose your Win/Mac/Linux binaries. Installation is straight forward. After installing you can add nodejs modules such as typescript by using your command line tool:

    npm install -g typescript
    

    Some download and installation messages ticker through your command line and as soon as you get the control back, typescript is installed (for more information on node.js, go to http://net.tutsplus.com/tutorials/javascript-ajax/node-js-for-beginners/).
    Having node.js and the typescript module ready to run you can open up a command line and hit

    tsc path/to/helloworld.ts
    

    which produces the corresponding helloworld.js file in path/to/. More on that on http://www.typescriptlang.org/Tutorial/.

    I used the following example from above tutorial website to provoke a compiler message (greeter() call accepts string and gets array):

    function greeter(person: string) {
        return "Hello, " + person;
    }
    var user = [0, 1, 2];
    document.body.innerHTML = greeter(user);
    

    Once again: this happens on the command line; I did not expect any specific problems of tsc. Is it possible that the nppexec console stops at certain special characters?

    thx
    Stefan

     
  • DV
    DV
    2012-10-04

    Answering your question: NppExec's console does not stop on any special character, it must show everything that can be shown. 
    Due to your instructions, I will investigate what happens.

     
  • DV
    DV
    2012-10-07

    Well, for the current moment I can not say anything reassuring… While trying this under debugging, I see the following: NppExec shows all the text which came into its read buffer, and all that text was "C:/path/to/helloworld.ts(7,26):" and nothing additional! 
    Why so? Well, let me explain a little how NppExec works. When you run some external application inside NppExec, first NppExec creates a pipe between itself and the external application. Then, while the external application is running, NppExec asks the pipe whether it contains any data (the data which comes to the pipe from the external process'es output) and, if it contains the data, NppExec shows the data in its Console. 
    In our case, all the data that the pipe contained was "C:/path/to/helloworld.ts(7,26):". As the pipe mechanism is an internal part of Win API, I can not say what goes wrong inside the pipe in this case. All I get is the pipe says it does not contain any more data, so NppExec can not read anything more… 
    OK, to show you that this current issue is not only NppExec-specific, you can try SciTE (the editor created by Scintilla's author). You will get the very same issue here. 
    So, the problem seems to be in internal implementation of pipes made by Windows' developers. For the mean time I can't say more. You can try to pass this information to NODE.JS developers - maybe they can avoid this problem of Windows' pipes by changing something in the code of NODE.JS internals…

     
  • DV
    DV
    2012-10-07

    Here is one suggestion: NODE.JS should force fflush() after each its output. Otherwise Windows' pipes just keep the output data inside its internal buffer and do not make this data available until the buffer overflows or fflush() is forced by the outputting application.