Coder Social home page Coder Social logo

opencobolide's Introduction

OpenCobolIDE

OpenCobolIDE is no longer maintained, see #439

Features:

  • COBOL syntax highlighter
  • COBOL code completion
  • COBOL code folding
  • configurable margins
  • navigable tree view of division, sections, paragraphs etc (fully synchronised with the code folding panel)
  • auto-indentation
  • tool for computing PIC fields offsets
  • compile as a program (.exe) or as a subprogram (.so/.dll)
  • run the program from the editor or from a configurable external terminal ( necessary if you are using the SCREEN section).
  • dark color schemes and theme
  • cross platform: works on GNU/Linux, Windows and Mac OSX
  • dbpre integration on Linux, esqlOC on Windows

License

OpenCobolIDE is released under the GPL version 3

Dependencies

Starting from v4.7, the following pure python dependencies are bundled with OCIDE (this makes packaging easier):

Installation

GNU/Linux

Note: starting from v4.6.2, the installed executable name is lowercase: opencobolide

Ubuntu

A debian package is available here: https://launchpad.net/cobcide/+download

This package should work on any Ubuntu version >= 14.04 and on any version derived from Ubuntu.

Fedora

A RPM package for Fedora 23 is available here: https://launchpad.net/cobcide/+download

ArchLinux

OpenCobolIDE is available from the AUR.

You can install using one of the many available AUR helper; e.g. using yaourt:

yaourt -S opencobolide

KaOS

OpenCobolIDE is up in the KaOs Community Packages (KCP):

kcp -i gnu-cobol
kcp -i opencobolide

Other distributions

Install Python3, PyQt5, GnuCOBOL and pip for Python3 using your package manager, then run the following commands:

sudo pip3 install OpenCobolIDE --upgrade

Note that if you have both PyQt5 and PyQt4 on your system, the IDE will use PyQt5 by default. To force the use of PyQt4, you should set the QT_API environment variable to pyqt4.

Windows

There is a windows installer available here: https://launchpad.net/cobcide/+download

Mac OSX

There is a dmg image available here: https://launchpad.net/cobcide/+download

Before running the app, you first have to install the GnuCOBOL compiler, e.g. using homebrew:

brew install gnu-cobol

If you installed the compiler in a non-standard path and it is not recognized by the IDE, you can specify the path to the compiler in the preferences dialog (Compiler tab)

Resources

Screenshots

  • Home page:

https://raw.githubusercontent.com/OpenCobolIDE/OpenCobolIDE/master/doc/source/_static/Home.png

  • Editor:

https://raw.githubusercontent.com/OpenCobolIDE/OpenCobolIDE/master/doc/source/_static/MainWindow.png

  • Code folding:

https://raw.githubusercontent.com/OpenCobolIDE/OpenCobolIDE/master/doc/source/_static/Folding.png

  • Offset calculator

https://raw.githubusercontent.com/OpenCobolIDE/OpenCobolIDE/master/doc/source/_static/PicOffsets.png

  • Dark style support

https://raw.githubusercontent.com/OpenCobolIDE/OpenCobolIDE/master/doc/source/_static/Dark.png

opencobolide's People

Contributors

astalaseven avatar bitdeli-chef avatar celinethiry avatar colinduquesnoy avatar vlinhart avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opencobolide's Issues

Next version: 2.4 or 3.0?

I initially planned to release next version as 2.4, but, with the recent big changes to the user interface (#38), and the move to pyQode2/PyQt5, I am more and more thinking to release the new version as 3.0.

I feel like a major version bump is needed to clearly mark the difference.

I won't decide that now since I first have to finish pyQode 2.0. Feel free to share your opinion!

go to line

Please give information what number the last line has (like Notepad++)

Use QProcess instead of subprocess

QProcess should work better in a frozen python application and hopefully fix #33.

It also provides an easier interface for running a subprocess from the GUI which will let me implement the following features:

  • add a third tab at the bottom of the IDE to show the full compiler output
  • QProcess signal will let me implement a saner system for running a series of command and get notified. Thanks to that I will be able to recompile outdated files when run is triggered.

calculate the offset of selected record definition

It would be nice with a COBOL specific feature showing the field offsets of a selected DATA DIVISION record definition. One editor that has an Offset calculator is CobTree (http://ynohoo.braindog.org/CobTree/)
In this example the total offset below is 75 (01 U1-POST PIC X(75).)
01 INPUT-DATA.
05 U1-DINRAR PIC X(06).
05 FILLER PIC X(01) VALUE ';'.
05 U1-DINR PIC X(07).
05 FILLER PIC X(01) VALUE ';'.
05 U1-ORGNR PIC X(10).
05 FILLER PIC X(01) VALUE ';'.
05 U1-INKDAT PIC X(08).
05 FILLER PIC X(01) VALUE ';'.
05 U1-TOMPER PIC X(08).
05 FILLER PIC X(01) VALUE ';'.
05 U1-RUBR1 PIC X(06).
05 FILLER PIC X(01) VALUE ';'.
05 U1-RUBR2 PIC X(06).
05 FILLER PIC X(01) VALUE ';'.
05 U1-RUBR3 PIC X(06).
05 FILLER PIC X(01) VALUE ';'.
05 U1-HDL1 PIC X(04).
05 FILLER PIC X(01) VALUE ';'.
05 U1-HDL2 PIC X(04).
05 FILLER PIC X(01) VALUE ';'.

outline not informative 2.2 beta 1

Now when .pco files are supported I have had a chance to evaluate this IDE and it looks promising, but the outline is not very informative, picking up the sequence number.
Sample:
140213 X10-BBL-PREP SECTION.
140213******************************************************************
140213******************************************************************
140213 X10-SEQ.

2.2 beta released

Version 2.2.0-beta1 has been released! No new features will be accepted for this release.

You can see the list of fixed bugs/new features here

The beta has not been released on PyPi, you will need to install from source (dev branch) and you will also have to upgrade pyqode.core and pyqode.widgets. (from dev branch too).

Please report any bugs encountered so that we have a chance to fix them before the final release.

You can also share your thoughts on this topic!

Fix repository url in readme/manual

Since I moved OpenCobolIDE to the OpenCobolIDE organization. I have to fix repository url in readme and doc before the 2.2 final release.

Dark style

Today I added dark style supprt for the whole application using QDarkStyle. I will post a screenshot here in a few hours.

Drop python2

pyQode will soon drop support python2 for the frontend (gui). I already use python3 for debian package and for the windows executable. I will just remove python2 from the list of supported version, stop testing it on travis and enforce the use of python3 in the script's shebang line.

Add go to definition mode

Since pyqode.code 1.1 there is a way to implement go to definition.
We could use this new feature for cobol too.

Create documentation

Create a simple documentation that covers the following subjects:

  • Whats new? + changelog
  • Download and install instructions
  • Getting started instructions
  • Contributing/reporting bugs
  • License

Add ability to choose comment indicator

This is strongly related with #42. The * character cannot be used as the comment indicator in free format (this is a limitation of open cobol and changing the standard does not resolves the issue). For more information, see this thread on the OpenCobol forums).

One must use *> for comments when using free format.

*> can be used for both free format and fixed format and will become the default but there will be an option to change that.

Add ability to run compiled program in an external terminal

If you are using the screen section to create a nice looking console application, a lots of garbage will appear in the program output window. To fix that, I should add the ability to run a compiled program in an external terminal.

I detected this issue while testing the code submitted in #27

Port to pyqode 2.0

pyQode 2.0 is in beta. I should port OpenCobolIDE to pyqode 2.0 so that I can release both at the same time (to avoid compatibility issues since pyqode 2.0 is not backward compatible with pyqode 1.3).

Logging

There is no way to retrieve the application log without running the IDE from the command line.

I should use the logging module to log messages both to stdout and to a file QTextEdit. That way it will be way easier for users to report a bug, especially on Windows when using the frozen executable.

Looking for debian packages maintainer

Making debian packages takes a lots of time and is a painful taks for me. I have a lots of work to do on pyqode and since I have recently moved to an achlinux based distribution, I've lost interests in making debian packages. That's why I decided to stop maintaining debian packages for OpenCobolIDE (and pyQode and QDarkStyle).

If you are interested in OpenCobolIDE on debian/ubuntu and would like to maintain those packages, feel free to post here. I will help you get started with the existing infrastructure and will make you part of the OpenCobolIDE team on github and launchpad.

Old version

The package for Ubuntu, named OpenCobol IDE-2.3.0.tar.gz, it do not contain that version and yes the old version, 2.2.0 ... Do not you remember modify the file?

Everaldo

Slow build menu options

Icon has a arrow, suggesting it has options, but you have to left click it during one second to see it:

buildcobc

Allow to disable linter

I get a bogous error using EXEC SQL INCLUDE (syntax error)

   WORKING-STORAGE SECTION.

140415 EXEC SQL INCLUDE 'BA420_FUNK' END-EXEC.

UnicodeDecodeError in parser

This was reported in #27. The error is that the parser assumes UTF-8 encoding and does not use chardet for detecting the correct encoding.

As this is a critical bug, I will do a new release once it has been fixed. I should apply the same fix to any other call call to read/readlines.

everaldo@dual:~$ open-cobol-ide
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/oci/modes.py", line 274, in parse
    self.editor.filePath, encoding=self.editor.fileEncoding)
  File "/usr/lib/python3/dist-packages/oci/parser.py", line 260, in parse_ast
    lines = f.readlines()
  File "/usr/lib/python3.3/codecs.py", line 301, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf3 in position 4662: invalid continuation byte
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/oci/main_window.py", line 223, in on_actionOpen_triggered
    self, "Open a file", Settings().lastFilePath, filter))
  File "/usr/lib/python3/dist-packages/oci/main_window.py", line 472, in openFile
    tab.openFile(fn, detectEncoding=True)
  File "/usr/lib/python3/dist-packages/oci/editor.py", line 131, in openFile
    self.__fileType = detect_file_type(filePath)
  File "/usr/lib/python3/dist-packages/oci/parser.py", line 334, in detect_file_type
    lines = f.readlines()
  File "/usr/lib/python3.3/codecs.py", line 301, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf3 in position 4662: invalid continuation byte
Process cobolCheckerMode process:
Traceback (most recent call last):
  File "/usr/lib/python3.3/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib/python3.3/multiprocessing/process.py", line 95, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python3/dist-packages/oci/modes.py", line 193, in checkFile
    fileType = detect_file_type(tmp)
  File "/usr/lib/python3/dist-packages/oci/parser.py", line 334, in detect_file_type
    lines = f.readlines()
  File "/usr/lib/python3.3/codecs.py", line 301, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf3 in position 4662: invalid continuation byte
everaldo@dual:~$ 

Could not download pyqode.cobol

Command used: python setup.py install on Ubuntu 12.04, python 2.7.3

Searching for pyqode.cobol
Reading https://pypi.python.org/simple/pyqode.cobol/
Couldn't find index page for 'pyqode.cobol' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.python.org/simple/
No local packages or download links found for pyqode.cobol
error: Could not find suitable distribution for Requirement.parse('pyqode.cobol')

Seems to not exist on pypi: https://pypi.python.org/pypi?:action=search&term=pyqode.cobol&submit=search

Cannot detect cobol compiler on mac

@bobscott45 reported this issue in #39. The user installed open cobol in /opt/local/bin and added the path to the PATH environment variable but the IDE complains about not finding the open cobol compiler.

The problem is that os.environ['PATH'] is not complete when run from a frozen application. Paths that you added yourself won't show up in the application.

E.g, here is the path when run from python sources:

/usr/bin:/bin:/usr/sbin:/usr/local/bin

and here the path when run from the frozen app:

/usr/bin:/bin:/usr/sbin

To solve this issue, I will add a few more hardcoded paths to the os.environ['PATH'] (/usr/local/bin, /opt/local/bin -> if you have other suggestions just drop a comment )

I will also add an option that let you specify additional paths to add to os.environ['PATH'] in the preferences dialog (probably in the build & run tab)

Cannot compile on Windows 7

Hello! I have interest in the IDE for Windows 7 Home Premium, with a code made in MF Cobol 4.5. In the Ubuntu 13.10, there is the parcial execution. I run the "Main Menu", what it already is a victory with tool, in the plataform Ubuntu! But I want to do the same in Windows 7, but the IDE not generate the EXE file and the modules DLLs. What is it happening in the version 2.3.1.0 for the Windows?
opencobolide-for-windows1

UI improvements/redesign

There are few things in the user interface that will change for the next release. I post this issue to outline the major differences.

    1. Lighter homepage:

home

    1. Toolbar are hidden by default and there is a new ControlPanel with compile and run buttons integrated into each editor tab. This is done to raise usable vertical space and make you understand that the compile and run actions are specifically tied to an editor tab. Of course there is an option to hide the control panel and restore the toolbars if you prefer:

window

progame type

    1. Menu is also hidden by default but there is now a dropdown button that give you a compressed menu with all the important actions. Clicking this button show the preferences dialog, clicking on the arrow show the menu:

menu

    1. Simpler preferences dialog:

settings1
settings2
settings3

Output

Really liked the look of the compiler, but for some reason it does not show any out-put when I use display. I compile the code and its gives no errors, but running it does nothing. If I use the same code in a different compiler it works fine and displays the output correctly.

Font size size

Font size in options is not readable:

fontsize

Nothing seen while using arrows.

Improve cobol parser

The current implementation for the cobol parser used for code completion and the structure panel relies heavily on indentation and miserably fails on malformed syntax (see #12)

We would need to add a solid test suite for it and improve the algorithm to work on free cobol syntax.

Mac support

This is more a news than an issue.

I have recently bought a macbook and will be able to improve mac support for OpenCobolIDE.

The application already works quite well as it is if you install everything from source but installing python3 + qt5 + pyqt5 from source takes a while and is quite error prone.

I will now be able to provide a standalone application with python and pyqt5 embedded.
You will just have to install the OpenCobol compiler, e.g. using homebrew:

brew install open-cobol

Cannot Run or Compile

The Run/Compile button is disabled sometimes.

~>OpenCobolIDE
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/OpenCobolIDE-2.1.0-py2.7.egg/oci/modes.py", line 264, in parse
    self.editor.filePath, encoding=self.editor.fileEncoding)
  File "/usr/local/lib/python2.7/dist-packages/OpenCobolIDE-2.1.0-py2.7.egg/oci/cobol.py", line 388, in parse_document_layout
    createIcon)
  File "/usr/local/lib/python2.7/dist-packages/OpenCobolIDE-2.1.0-py2.7.egg/oci/cobol.py", line 309, in _extract_var_node
    parent_node.add_child(node)
AttributeError: 'NoneType' object has no attribute 'add_child'

It seems that this is caused by misindented source, or malformed source code (?)

COBOL Source - file extension incomplete

Some file extensions that COBOL source files can have.
.COB (Program Source)
.CBL (Program Source)
.PCO (Recompilation Required Source Code)
.CPY (Copybooks)

Fail to detect program dependencies

OpenCobolIDE has a dependency detection system that detects the sub modules you are using in your main program. It does so by looking for statements that looks like:

CALL "MODULE-NAME" using LINKAGE-SECTION-PARAMS.

This is feature is handy because it allow OpenCobolIDE to compile any submodule along with your main program. However it fails if MODULE_NAME is enclosed by single quotes parameters, e.g.:

CALL 'MODULE-NAME' using LINKAGE-SECTION-PARAMS.

This should be easy to fix and will ensure all your submodules are detected. (I should add a test for that!)

This issue appeared for the first time while testing the code submitted in #27

Changed options not saved

When changing standard or choosing free format then clicking on Ok and going back to the Preferences, nothing is changed.

Windows 8, native theme (works correctly with dark theme).

Update manual

Since new features have been introduces. I have to document them in the user manual before the final 2.2 release.

Block Selection Mode

Column (block) selection would be very handy. Both Eclipse and Notepad++ has this feature.

How compile I that code in mf cobol 4.5 in the IDE ...

I get to compile my code principal screen, but when I choose my option only hear a beep and nothing ...How do I change my old code?

File: CLI000.CBL

       IDENTIFICATION DIVISION.
       PROGRAM-ID. CLI000.
       ENVIRONMENT DIVISION.
      *
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  WS-VARIAVEIS.
           03 WS-OPCAO   PIC 9(01).
           03 WS-PAUSA   PIC X(01).
       LINKAGE SECTION.
       01  LK-VARIAVEIS.
           03 XXXXXX     PIC X(06).
           03 YYYYYY     PIC X(06).
       SCREEN SECTION.
       01  TELA-1.
           03 BLANK SCREEN.
           03 LINE 10 COLUMN 17 VALUE "MENU PRINCIPAL".
           03 LINE 12 COLUMN 17 VALUE "1 - INCLUSAO".  
           03 LINE 14 COLUMN 17 VALUE "2 - CONSULTA".
           03 LINE 16 COLUMN 17 VALUE "3 - EXCLUSAO".
           03 LINE 18 COLUMN 17 VALUE "9 - SAIR".
           03 LINE 20 COLUMN 17 VALUE "OPCAO ......:".             
       PROCEDURE DIVISION.
       010-INICIO.
      *     DISPLAY ERASE AT 0101.
           DISPLAY TELA-1.
       020-LER-TELA.
           ACCEPT WS-OPCAO AT 2031.
           IF WS-OPCAO = 1
              CALL 'CLI001' USING LK-VARIAVEIS
              CANCEL 'CLI001' ELSE
           IF WS-OPCAO = 2
              CALL 'CLI002' USING LK-VARIAVEIS
              CANCEL 'CLI002' ELSE
      *     IF WS-OPCAO = 3
      *        CALL 'CLI003' USING LK-VARIAVEIS
      *        CANCEL 'CLI003' ELSE
           IF WS-OPCAO = 9
              GO TO 030-FIM ELSE
              GO TO 010-INICIO.
       030-FIM.
      *     DISPLAY ERASE AT 0101.
           DISPLAY "Fim do Programa!" AT 1040.
           STOP RUN.

FILE: CLI001.CBL

       IDENTIFICATION DIVISION.
       PROGRAM-ID. CLI001.
      *
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           DECIMAL-POINT IS COMMA.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT DADOS ASSIGN TO DISK
                  ORGANIZATION IS INDEXED
                  ACCESS MODE  IS DYNAMIC
                  LOCK MODE    IS AUTOMATIC
                  RECORD KEY   IS CODIGO
                  FILE STATUS  IS WS-STATUS.
       DATA DIVISION.
       FILE SECTION.
       FD  DADOS
           LABEL RECORD IS STANDARD
           DATA  RECORD IS REG-DADOS
           VALUE OF FILE-ID "DADOS.DTA".
       01  REG-DADOS.
           02 CODIGO    PIC 9(10).
           02 CLIENTE   PIC X(30).
           02 DT-CAD.
              05 DIA    PIC 9(02).
              05 MES    PIC 9(02).
              05 ANO    PIC 9(02).
           02 DT-NASC.
              05 DIA    PIC 9(02).
              05 MES    PIC 9(02).
              05 ANO    PIC 9(02).
           02 ENDERECO  PIC X(35).
           02 BAIRRO    PIC X(20).
           02 CIDADE    PIC X(35).
           02 UF        PIC X(02).
           02 CEP       PIC X(10).
           02 FONE      PIC X(14).
       WORKING-STORAGE SECTION.
       77  WS-STATUS    PIC X(02) VALUE SPACES.
       01  VARIAVEIS-SISTEMA.
           02 WS-LIMPA1 PIC X(35) VALUE SPACES.
           02 WS-LIMPA2 PIC X(20) VALUE SPACES.
           02 WS-LIMPA3 PIC X(02) VALUE SPACES.
           02 WS-LIMPA4 PIC X(10) VALUE SPACES.
           02 WS-LIMPA5 PIC X(14) VALUE SPACES.
           02 WS-CONT   PIC 9(03) VALUE ZEROS.
           02 ED-CONT   PIC ZZ9.
           02 WNADA     PIC X     VALUE SPACES.
       01  WS-DATA.
           02 WS-ANO    PIC 9(02) VALUE ZEROS.
           02 WS-MES    PIC 9(02) VALUE ZEROS.
           02 WS-DIA    PIC 9(02) VALUE ZEROS.
       01  WS-HORA.
           02 WS-HOR    PIC 9(02) VALUE ZEROS.
           02 WS-MIN    PIC 9(02) VALUE ZEROS.
           02 WS-SEG    PIC 9(02) VALUE ZEROS.
           02 WS-CSE    PIC 9(02) VALUE ZEROS.
       LINKAGE SECTION.
       01  LK-VARIAVEIS.
           03 XXXXXX    PIC X(06).
           03 YYYYYY    PIC X(06).
       SCREEN SECTION.
       01  TELA.
           02 BLANK SCREEN.
           02 LINE  1 COLUMN  1 VALUE "DATA:".
           02 LINE  1 COLUMN 29 VALUE "CADASTRO DE CLIENTES".
           02 LINE  3 COLUMN 07 VALUE "Codigo ........... :".
           02 LINE  4 COLUMN 07 VALUE "Cliente .......... :".
           02 LINE  5 COLUMN 07 VALUE "Dt. Cadastro ..... :".
           02 LINE  6 COLUMN 07 VALUE "Dt. Nascimento ... :".
           02 LINE  7 COLUMN 07 VALUE "Endereco ......... :".
           02 LINE  8 COLUMN 07 VALUE "Bairro ........... :".
           02 LINE  9 COLUMN 07 VALUE "Cidade ........... :".
           02 LINE 10 COLUMN 07 VALUE "UF ............... :".
           02 LINE 11 COLUMN 07 VALUE "CEP .............. :".
           02 LINE 12 COLUMN 07 VALUE "Fone ............. :".
           02 LINE 21 COLUMN 07 VALUE "MENSAGEM:".
           02 LINE 21 COLUMN 60 VALUE "Contador <   >".
       PROCEDURE DIVISION USING LK-VARIAVEIS.
       010-INICIO.
      *     DISPLAY ERASE AT 0101.
           OPEN I-O DADOS.
           IF WS-STATUS = "00"
              GO TO 011-INICIA-DATAS.

           IF WS-STATUS = "05"
      *        DISPLAY ERASE AT 0101
              DISPLAY "Criando arquivo de dados!" AT 2118
              CLOSE DADOS
              OPEN OUTPUT DADOS
              CLOSE DADOS
              GO TO 010-INICIO.

           DISPLAY "ERRO ao abrir arquivo de dados! " AT 2118.
           ACCEPT  WNADA AT 2150 WITH PROMPT.
           EXIT PROGRAM.
      *
       011-INICIA-DATAS.
           ACCEPT WS-DATA FROM DATE.
           ACCEPT WS-HORA FROM TIME.
       020-VIDEO.
           DISPLAY TELA.
           DISPLAY WS-DIA "/" WS-MES "/" WS-ANO AT 0107.
       030-LIMPA-DADOS.
           DISPLAY WS-LIMPA1 AT 0432.
           DISPLAY WS-LIMPA1 AT 0732.
           DISPLAY WS-LIMPA2 AT 0832.
           DISPLAY WS-LIMPA3 AT 0932.
           DISPLAY WS-LIMPA4 AT 1032.
           DISPLAY WS-LIMPA5 AT 1132.
       040-CODIGO.
           ACCEPT  CODIGO AT 0332 WITH PROMPT.
           IF CODIGO = ZEROS
              DISPLAY "Codigo invalido - Redigite" AT 2118
              GO TO 040-CODIGO.
           IF CODIGO = 9999
              GO TO 060-FIM.
      *
       040-LEITURA-CLIENTES.
           READ DADOS INVALID KEY
                MOVE SPACES TO CLIENTE ENDERECO BAIRRO CIDADE UF CEP
                     FONE
                MOVE ZEROS TO DT-CAD DT-NASC
                WRITE REG-DADOS
                GO TO 041-CLIENTE.
      *
           DISPLAY CLIENTE AT 0432.
           DISPLAY DT-CAD AT 0532.
           DISPLAY DT-NASC AT 0632.
           DISPLAY ENDERECO AT 0732.
           DISPLAY BAIRRO AT 0832.
           DISPLAY CIDADE AT 0932.
           DISPLAY UF AT 1032.
           DISPLAY CEP AT 1132.
           DISPLAY FONE AT 1232.
           DISPLAY "Registro jah incluido! " AT 2118.
           ACCEPT  WNADA AT 2150 WITH PROMPT.
           DISPLAY "                       " AT 2118.
           GO TO 020-VIDEO.
      *
       041-CLIENTE.
           ACCEPT  CLIENTE AT 0432 WITH PROMPT.
           IF CLIENTE = SPACES
              DISPLAY "Nome cliente em branco - Redigite" AT 2118
              GO TO 041-CLIENTE.
       042-DT-CAD.
           ACCEPT  DT-CAD AT 0532 WITH PROMPT.
           IF DT-CAD = SPACES
              DISPLAY "Data de Cadastro em branco - Redigite" AT 2118
              GO TO 042-DT-CAD.
       043-DT-NASC.
           ACCEPT  DT-NASC AT 0632 WITH PROMPT.
           IF DT-NASC = SPACES
              DISPLAY "Data de Nascimento em branco - Redigite" AT 2118
              GO TO 043-DT-NASC.
       044-ENDERECO.
           ACCEPT  ENDERECO AT 0732 WITH PROMPT.
           IF ENDERECO = SPACES
              DISPLAY "Endereco em branco - Redigite" AT 2118
              GO TO 044-ENDERECO.
       045-BAIRRO.
           ACCEPT  BAIRRO AT 0832 WITH PROMPT.
           IF BAIRRO = SPACES
              DISPLAY "Bairro em branco - Redigite" AT 2118
              GO TO 045-BAIRRO.
       046-CIDADE.
           ACCEPT  CIDADE AT 0932 WITH PROMPT.
           IF CIDADE = SPACES
              DISPLAY "Cidade em branco - Redigite" AT 2118
              GO TO 046-CIDADE.
       047-UF.
           ACCEPT  UF AT 1032 WITH PROMPT.
           IF UF = SPACES
              DISPLAY "UF em branco - Redigite" AT 2118
              GO TO 047-UF.
       048-CEP.
           ACCEPT  CEP AT 1132 WITH PROMPT.
           IF CEP = SPACES
              DISPLAY "CEP em branco - Redigite" AT 2118
              GO TO 048-CEP.
       049-FONE.
           ACCEPT  FONE AT 1232 WITH PROMPT.
           IF FONE = SPACES
              DISPLAY "FONE em branco - Redigite" AT 2118
              GO TO 049-FONE.
       050-GRAVAR.
           REWRITE REG-DADOS.
           ADD 1 TO WS-CONT.
           MOVE WS-CONT TO ED-CONT.
           DISPLAY ED-CONT AT 2170.
           GO TO 030-LIMPA-DADOS.
       060-FIM.
      *     DISPLAY AT 0101 ERASE.
           DISPLAY "Fim do Programa!" AT 1530.
           CLOSE DADOS.
           EXIT PROGRAM.
      *** --------- FIM DO PROGRAMA CLI001 --------- ***
                           ___________             
                          |  CLI000.CBL |
                          --------------------
                                       |
                                       |
         |----------------------------------------------|
         |                                                       |
  |  CLI001.CBL |                            | CLI002.CBL |  

Consider moving OpenCobol Windows binaries to another repo

I should move the OpenCobol windows binaries to another repository and use it as a submodule. I should also clean up the repository to remove any binary files.

That way the main repository will be lighter, linux user won't even care about the submodule, only windows developers (windows user typically use the Windows installer, I think).

That would also make the management easier in case someone else would like to maintain the windows binaries (I could create a team dedicated just for that).

Allow user to code in lower-case

Now when the ANS COBOL 85 standard (i.e. 28 years ago) standard allow text to be in upper or lower case, a good practice is to use upper case for COBOL reserved words, and lower case for anything else. In fact, what really is used is dependent on different workshops policies. The point here, it is not up to the editor to enforce anything but leave that decision to end users.

Proposal: Remove the automatic upper-case feature when coding in the IDE.

Color scheme preview

It could be nice to have a preview of a color scheme without having to click on Ok, quit the Preferences, go back, choose another…

Not critical, but could be a nice to have feature :)

View change if build option changed

Before:

beforecobc

After going in the options and changing the build option (default, ibm…), text is moved to the left for one character and some unzoom is applied:

aftercobc

Doesn't happen on the default template, yet with so many lines than my program and voluntary errors. I can send it to you through mail if you need it (should be easier to debug I suppose)

2.4.0beta1 Crash on OS X 10.9.3

Crashes on opening with:-

Process:         OpenCobolIDE [12776]
Path:            /Applications/OpenCobolIDE-2.4.0beta1.app/Contents/MacOS/OpenCobolIDE
Identifier:      OpenCobolIDE
Version:         0
Code Type:       X86-64 (Native)
Parent Process:  launchd [608]
Responsible:     OpenCobolIDE [12776]
User ID:         501

Date/Time:       2014-06-06 10:34:59.643 +0100
OS Version:      Mac OS X 10.9.3 (13D65)
Report Version:  11


Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information:
abort() called

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib          0x00007fff8ec4c866 __pthread_kill + 10
1   libsystem_pthread.dylib         0x00007fff8e79835c pthread_kill + 92
2   libsystem_c.dylib               0x00007fff98110b1a abort + 125
3   QtCore                          0x0000000101b6d2f9 qt_message_fatal(QtMsgType, QMessageLogContext const&, QString const&) + 9
4   QtCore                          0x0000000101b6d8d1 QMessageLogger::fatal(char const*, ...) const + 161
5   QtGui                           0x00000001016b6f79 QGuiApplicationPrivate::createPlatformIntegration() + 4249
6   QtGui                           0x00000001016b6f9b QGuiApplicationPrivate::createEventDispatcher() + 27
7   QtCore                          0x0000000101d64904 QCoreApplication::init() + 100
8   QtCore                          0x0000000101d64887 QCoreApplication::QCoreApplication(QCoreApplicationPrivate&) + 39
9   QtGui                           0x00000001016b4e0e QGuiApplication::QGuiApplication(QGuiApplicationPrivate&) + 14
10  QtWidgets                       0x000000010104b4be QApplication::QApplication(int&, char**, int) + 206
11  PyQt5.QtWidgets.so              0x0000000100af3473 init_type_QApplication(_sipSimpleWrapper*, _object*, _object*, _object**, _object**, _object**) + 179
12  sip.so                          0x000000010329d1a2 sipSimpleWrapper_init + 149
13  Python                          0x0000000100300c57 type_call + 172
14  Python                          0x00000001002c0e11 PyObject_Call + 103
15  Python                          0x000000010034fe79 PyEval_EvalFrameEx + 19441
16  Python                          0x0000000100353422 fast_function + 203
17  Python                          0x000000010034fdd2 PyEval_EvalFrameEx + 19274
18  Python                          0x000000010034b0d4 PyEval_EvalCodeEx + 1628
19  Python                          0x000000010034aa72 PyEval_EvalCode + 63
20  Python                          0x000000010034847c builtin_exec + 536
21  Python                          0x000000010034fd5c PyEval_EvalFrameEx + 19156
22  Python                          0x000000010034b0d4 PyEval_EvalCodeEx + 1628
23  Python                          0x000000010034aa72 PyEval_EvalCode + 63
24  OpenCobolIDE                    0x000000010017ecdf main + 1919
25  libdyld.dylib                   0x00007fff90b885fd start + 1

Can't compile cbl files if path contains spaces

Hi,

Fist of all. What a great app. Very helpful when starting to learning Cobol. I have an issue though since upgrading from Ubuntu 13.04 to Ubuntu 13.10 I get below error message when I try to compile the the code in OpenCobolIDE. It worked fine when I was using 13.04. I have noticed that 13.04 uses Python 2.7.4 while 13.10 is using Python 2.7.5 I´m not sure if this is causing the error. Do I need to downgrade to Python 2.7.4?

Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/pyqode/core/system.py", line 294, in run
self.executeOnRun(_self.args, *_self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/oci/main_window.py", line 330, in compileCurrent
status, messages = cobol.compile(filePath, programType)
File "/usr/local/lib/python2.7/dist-packages/oci/cobol.py", line 569, in compile
lineNbr = int(tokens[len(tokens) - 3])
ValueError: invalid literal for int() with base 10: 'error'

Add ability to choose standard

OpenCobol supports the following standards:

  • cobol2002
  • cobol85
  • ibm
  • mvs
  • bs2000
  • mf
  • default

It would be nice to give the ability to the user to choose the standard. This could fit into the cobol section introduced for #42.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.