Community
    • Login

    COBOL syntax highlighting stops working

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    5 Posts 2 Posters 1.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • PaoloRicardoP
      PaoloRicardo
      last edited by

      I’m writing a COBOL app. The syntax highlighting works for about the first half of the program and then stops - highlighting just disappears after the first few lines of the PROCEDURE DIVISION.

      I have cobol.xml and userDefinedLang.xml in my Notepad++\plugins\APIs folder.

      Has anyone got a solution?

      Thanks
      Paul

      Meta ChuhM 1 Reply Last reply Reply Quote 0
      • Meta ChuhM
        Meta Chuh moderator @PaoloRicardo
        last edited by Meta Chuh

        @PaoloRicardo

        could you please download the date.zip cobol sample from >>> here <<<, extract it anywhere, and open DATEP.COB in notepad++ (appx. 40kb).
        scroll down to the end and compare if it looks like this screenshot:

        Imgur

        if DATEP.COB does not look the same, we would need your debug info.
        please go to ? > debug info... > copy debug info into clipboard and paste your contents here, as we still do not have your debug info yet, and it has been requested before.

        if DATEP.COB looks the same, and you have a specific files that show this issue, we would need a sample .cob, to try to reproduce this, in addition to your debug info.

        ps: could you please reply to one of your previous posts:
        https://notepad-plus-plus.org/community/topic/17222/nppexec-f6-not-working/5
        many of us have an elephant’s memory, and might otherwise refuse to answer future questions you might have ;-)

        1 Reply Last reply Reply Quote 2
        • PaoloRicardoP
          PaoloRicardo
          last edited by

          Meta Chuh

          The DATEP.COB program certainly shows the highlighting as in the example, although the colours are different because I am using a different colour scheme. Sorry for not sending debug info before. I misread the post.

          Debug Info:
          Notepad++ v7.5.9 (32-bit)
          Build time : Oct 14 2018 - 15:02:52
          Path : C:\Program Files (x86)\Notepad++\notepad++.exe
          Admin mode : ON
          Local Conf mode : OFF
          OS : Windows 7 (64-bit)
          Plugins : DSpellCheck.dll mimeTools.dll NppConverter.dll NppExport.dll AnalysePlugin.dll AutoSave.dll CodeAlignmentNpp.dll NppCCompletionPlugin.dll NppEditorConfig.dll NppEventExec.dll NppExec.dll NppFavorites.dll NppFTP.dll NppHorizontalRuler.dll PluginManager.dll SourceCookifier.dll

          The program I am having difficulty with is shown below. The line where highlighting ceases is indicated by <<<<< Highlighting ceases

            *> ***************************************************************
            $SET SOURCEFORMAT”FIXED”
             identification division.
             program-id. DCFApp.
            *> environment division.
            *> configuration section.
             
             special-names.
              cursor is curs-pos.
             repository.
              function all intrinsic.
          
             input-output section.
             file-control.
            *>   select
            *>   assign to
            *>   organization is
            *>   .
             data division.
             
               
             file section.
            *>fd .
            *>    01 .
             
             working-storage section.
             copy "screenio".
             01 curs-pos.
              03 curs-line        pic 99.
              03 curs-col         pic 99.
             01 input-numbers.
              03 input-year       pic 99.
              03 input-outlay     pic x(9).
              03 input-benefits   pic x(9).
              03 input-opcosts    pic x(9).
              03 output-cashflow  pic +++,++9.99.
              
             01 calc-table.
              03 inv-entries occurs 11 times.
                05 inv-year       pic 99.
                05 inv-outlay     pic 9(6)v99.
                05 inv-benefits   pic  9(6)v99.
                05 inv-opcosts    pic 9(6)v99.
                05 inv-cashflow   pic s9(6)v99.
                05 inv-presvalue  pic s9(6)v99.
                
             01 discount-rate     pic 9(3)v99.
             01 year-sub          pic 99.
             01 posneg-flag       pic x.
               88 positiv         value "p".
               88 negativ         value "n".
             
             01 calc-results.
              03 inv-netpresvalue pic s9(6)v99.
              03 inv-IRR          pic s99v99.
                
            *> local-storage section.
            *> linkage section.
             screen section.
            *> copy "dcfscrn.ss".
            
             procedure division.
            *> set in order to detect the PgUp, PgDn, PrtSc, Esc keys
             set environment 'COB_SCREEN_EXCEPTIONS' TO 'Y'.
             set environment 'COB_SCREEN_ESC'        TO 'Y'.
           
             display "DCF  Model - 10 Year Project" at 0119 
                      background-color white foreground-color blue
             display "Year   Outlay     Benefits    Operating     Cashflow   
            -"  Present" at 0302   <<<<<  Highlighting ceases
             display "Costs                      Value " at 0434
             
             move 1 to year-sub input-year
             display " [  ] [         ] [         ]  [         ]" at 0601
             
            *> perform loop
             perform main-loop 10 times
              
             accept omitted
             
             stop run.
            
            *> sub-routines. 
             main-loop.
            *>  move 06 to curs-line
              display input-year at 0603
              accept input-outlay at 0608
              accept input-benefits at 0620
              accept input-opcosts at 0633
             
              move numval(input-year) to inv-year(year-sub)
              move numval(input-outlay) to inv-outlay(year-sub)
              move numval(input-benefits) to inv-benefits(year-sub)
              move numval(input-opcosts) to inv-opcosts(year-sub)
           
              perform calc-cashflow *>end-perform
             
              move inv-cashflow(year-sub) to output-cashflow
              
              evaluate true
               when inv-cashflow(year-sub) is positive
                set positiv to true
                display output-cashflow at 0645 foreground-color green
               when inv-cashflow(year-sub) is negative
                set negativ to true
                display output-cashflow at 0645 foreground-color red
              end-evaluate
              
               perform display-year-input *>end-perform
               add 1 to input-year.
               
             calc-cashflow.
              compute inv-cashflow(year-sub) = 
              inv-benefits(year-sub)-((inv-outlay(year-sub)
               + inv-opcosts(year-sub))).
               
             display-year-input.
              display input-year at 0803  
              display input-outlay at 0808
              display input-benefits at 0820
              display input-opcosts at 0833
              if positiv 
               display output-cashflow at 0845 foreground-color green
              else
              if negativ
               display output-cashflow at 0845 foreground-color red.
             
             end-program. DCFApp.
          
          Meta ChuhM 1 Reply Last reply Reply Quote 0
          • Meta ChuhM
            Meta Chuh moderator @PaoloRicardo
            last edited by Meta Chuh

            @PaoloRicardo

            this is because you have an odd number of three " double quotes in line 69/70.
            all strings have to have open and close quote or double quote pairs.

            if you instert the missing quote like this, the highlighting will work:

               display "Year   Outlay     Benefits    Operating     Cashflow   
              -"  Present"" at 0302   <<<<<  Highlighting ceases
            

            but i doubt that the cobol error correction will be able to run this code properly, as Present is no longer part of the string.

            does it even run for you as it is ? with 3 double quotes and one closing double quote missing ?

            note: if you want to use " as part of a string, you will e.g. have to use 'single quotes as delimiters for the whole string.

               display 'Year   Outlay     Benefits    Operating     Cashflow   
              -"  Present"' at 0302   <<<<<  Highlighting ceases
            
            1 Reply Last reply Reply Quote 2
            • PaoloRicardoP
              PaoloRicardo
              last edited by

              Mata

              The above leads to compilation errors. I have split the Display into two separate statements and have an acceptable result i.e. syntax highlighting is back.

              I realised that I did not have the most recent version of Notepad++ (7.63). Installing this now means F6 correctly brings up the NppExec dialog.

              Thanks for your help.

              Psul

              1 Reply Last reply Reply Quote 3
              • First post
                Last post
              The Community of users of the Notepad++ text editor.
              Powered by NodeBB | Contributors