Searching IBM i Source Code in VS Code: A Modern Twist on PDM's Classic Capabilities
Yes, you absolutely can search IBM i source code in Visual Studio Code (VS Code) in ways that mirror and even enhance the functionality of Programmer's Development Manager (PDM) on IBM i. PDM, a staple of green-screen development since the AS/400 era, offers robust search options like option 25 in WRKMBRPDM to scan member text across a source physical file.
VS Code, when equipped with the right extensions, brings this into a modern, graphical environment, complete with hyperlinks, syntax awareness, and integration with broader workflows. This isn't just a replication; it's an evolution that leverages VS Code's extensibility for faster, more intuitive searches.
Let's explore this from multiple perspectives: core capabilities via the primary extension, comparisons to PDM, setup and usage steps, advanced enhancements, nuances and limitations, practical examples, implications for productivity, and edge cases. By the end, you'll have a clear path to implement this in your IBM i development environment, whether you're migrating from legacy tools or optimizing a hybrid setup.
Searching with PDM
Here I have used PDM 25 to search for source members using the EXCEPT operation code, with default search parameters basically saying, "search the entire source file looking for the word 'except' (ignoring upper/lower case differences) and if found, BROWSE that source member on screen before continuing through the list.
Core Extension for IBM i Integration: Code for IBM i
The key enabler is the "Code for IBM i" extension (available on the VS Code Marketplace with over 67,000 installs as of late 2025). This free, open-source tool transforms VS Code into an IBM i-focused IDE, supporting RPGLE, CL, COBOL, C/CPP, and more. It includes built-in search features for source members, akin to PDM's member text search.
How It Compares to PDM: In PDM, you typically use WRKMBRPDM, select a source file (e.g., QRPGLESRC), and hit F17 for sort/filter or option 25 to search member contents for strings like "SELECT * FROM". VS Code's approach is similar but more visual: You browse libraries and files in a sidebar (Object Browser), then right-click to search within a source physical file. Results appear in a new tab with clickable links to jump directly to matches, saving the back-and-forth navigation common in PDM. It's not identical (no exact equivalent to PDM's global library search out-of-the-box), but it excels in integration with VS Code's global search (Ctrl+Shift+F) for IFS-based source or local clones.
From a usability angle, VS Code feels more fluid for multi-tasking devs: No screen flips, and searches can run alongside editing or Git operations. Community feedback from GitHub discussions highlights this as a major draw for developers ditching PDM after decades. For instance, users in financial services and vegetation management industries report using it for RPG/SQL maintenance, praising the inline results over PDM's list outputs.
Step-by-Step Setup and Basic Usage
Getting started is straightforward, assuming you have VS Code installed. Here's how to mirror PDM-style searches:
Install the Extension:
Connect to Your IBM i System:
Perform a Search (PDM-Like):
(1) from a local source repository on your PC:
(2) from an IBM i Browing sessions, looking at a source file in a library:
Example: Searching for "except" in a utilities source file might reveal matches in multiple RPGLE members, hyperlinked for quick edits, faster than PDM's F16 repeat-find.
Something to note: Searches are case-insensitive by default but can be refined via extension settings (e.g., regex support). For broader scope, combine with VS Code's built-in search across open files or IFS directories.
Advanced Enhancements: Going Beyond Basic PDM Searches
For more power, layer on extensions or integrations:
Fast & PF-urious Search for IBM i: This dedicated extension emulates PFGREP (a Unix-like grep for IBM i), enabling lightning-fast searches across multiple source files or libraries. Install it similarly, then use its commands (e.g., via Command Palette: Ctrl+Shift+P) to search regex patterns or wildcards, ideal for cross-library hunts that PDM handles clunkily.
ARCAD or Source Orbit Extensions: For enterprise-scale, these add metadata-driven searches (e.g., impact analysis on changes), turning VS Code into a full DevOps hub. They integrate with Git for searching versioned history, something PDM lacks entirely.
IFS and Git Integration: If storing source in IFS (as recommended for modern RPG), VS Code's native search shines, global finds across directories, with Git blame for "who changed this line?" This bridges legacy QSYS searches with modern repos.
From a tooling perspective, these make VS Code more versatile than PDM: Inline SQL results, diff comparisons, and even Node.js/PHP alongside RPG
Comparing Apples to Oranges - PDM is not VSCODE!
For decades I've been a PDM Fanboy, so I've also found things I really don't like about VS-Code - No native global search across all libraries without extensions or commands for example. PDM edges it here for pure green-screen simplicity. Performance dips in massive libraries (>10,000 members); mitigate with filters or pagination.
VS Code searches pull from IBM i metadata, so they're accurate but timezone-aware (sync your system clocks). Source dates (enabled in settings) add line-level timestamps, enhancing "when was this changed?" queries beyond PDM's basics. However, default searches are per-file; for library-wide, use workarounds like running DSPFD to an outfile and querying via SQL in VS Code's terminal.
In summary, VS-Code is a different beast, but it makes my life easier and my coding faster in general. VS Code not only replicates PDM's source search but elevates it with modern flair, making it a yes for most use cases. If you're deep in IBM i dev, experiment - it's free and transformative. For more, check the extension's GitHub for updates or community forums.




