# Flexible COBOL - A Real COBOL IDE in JetBrains

Flexible COBOL brings a native COBOL parser, a COBOL-level debugger and z/OS compile-and-run to JetBrains IDEs, for IBM Enterprise COBOL and GnuCOBOL.


So this is an exciting one: Flexible COBOL.
COBOL never went away. It just got quiet. A lot of it still runs, and developing or modernizing it without proper IDE support is hard - especially across mixed IBM Enterprise COBOL and GnuCOBOL codebases with deep copybook trees.
Honestly, we built it because we like the language, saw a gap in the IDE space, and wanted to apply what we know about language plugins. If you’ve seen Flexible ABAP, you know the approach: the grammar is written from scratch, parsing runs right in the IDE, no language server, works offline.
And it holds up. As a test, it parses the whole NIST COBOL-85 test suite - 391 programs, zero parse errors, about 10,000 lines per second. (If you wonder why a plugin needs that much grammar, here’s why a language plugin needs a grammar, not a regex.)
What you get:
Both dialects: IBM Enterprise COBOL and GnuCOBOL, fixed and free format (auto-detected, or set with >>SOURCE FORMAT). EXEC SQL and EXEC CICS blocks, with full SQL support inside them. Navigation: call hierarchy across CALL, PERFORM and CICS LINK/XCTL, and COPY resolution with a rename that understands REPLACING. Help while typing: 10 inspections, 4 intentions, 48 live templates, and quick docs for 57 verbs. A debugger that speaks COBOL: it runs over GDB on cobc -g builds, steps by COBOL line, and shows variables by their COBOL names - COMP, COMP-3, OCCURS and level-88 conditions included. Watches and evaluate take COBOL expressions. z/OS over z/OSMF: upload the program and its copybooks, generate the JCL, compile, link, run, and read the spool, all from the IDE. Compiler messages link back to your source lines, and you can import your Zowe config. Modernization helpers: generate Java classes and JSON Schema from PIC clauses. AI: an embedded MCP server with 15 tools, plus a chat that works with Claude Code, Codex, Gemini, Cursor and others, or your own API key. One bug from the release prep that I just have to share, because it’s so classic: compiler errors in the Run console weren’t clickable. Turns out the console hands each line over with its trailing line break, and the pattern used .* - which doesn’t match \n. The unit tests fed in lines without the break, so they never noticed. Strip the line break, done. Decades of computing, and line endings still get you :)
The honest limits: there’s no z/OS debugging (debug locally with GnuCOBOL instead), the formatter only touches free-format files (fixed format is left alone on purpose), and GnuCOBOL and GDB need to be installed separately.
It’s a paid plugin - free for students, teachers and open source projects.
Get it here: plugins.jetbrains.com/plugin/34037-flexible-cobol
Cheers, Paul
