codefori / vscode-ibmi

🌍 IBM i development extension for VS Code
https://codefori.github.io/docs/#/
MIT License
279 stars 94 forks source link

"Search Source File" results not shown #1547

Closed mprovvedi closed 3 days ago

mprovvedi commented 11 months ago

Hi everyone, I've a problem when searching for a string in a source file. I always get this message "No results found searching for string searched in target source file.", no matter which string I search for. But when I look in the output of the extension I can see the expected results, as you can see in this screenshot: image

Let me know if you need anything else, Thank you for your great work!


Context Version
Code for IBM i version 2.2.1
Visual Studio Code version 1.82.2
Operating System win32_x64
Active extensions ``` Account Microsoft (microsoft-authentication): 0.0.1 Autenticazione GitHub (github-authentication): 0.0.2 COBOL (cobol): 9.9.16 Code for IBM i Walkthroughs (vscode-ibmi-walkthroughs): 0.3.1 Collegamento automatico per debug di Node (debug-auto-launch): 1.0.0 Db2 for IBM i (vscode-db2i): 0.4.1 Emmet (emmet): 1.0.0 Error Lens (errorlens): 3.13.0 Esegui merge del conflitto (merge-conflict): 1.0.0 Funzionalità dei linguaggi TypeScript e JavaScript (typescript-language-features): 1.0.0 Funzionalità del linguaggio JSON (json-language-features): 1.0.0 GIT (git): 1.0.0 Git Base (git-base): 1.0.0 Git Graph (git-graph): 1.30.0 GitHub (github): 0.0.1 IBM i Notebooks (vscode-ibmi-notebooks): 0.0.6 Material Icon Theme (material-icon-theme): 4.30.1 Monokai Pro (theme-monokai-pro-vscode): 1.2.1 Overtype (overtype): 0.5.0 Path Intellisense (path-intellisense): 2.8.4 RPGLE (vscode-rpgle): 0.21.4 Risultato della ricerca (search-result): 1.0.0 TODO Highlight (vscode-todo-highlight): 1.0.5 WSL: Recommender (remote-wsl-recommender): 0.0.19 ```

Remote system |Setting|Value| |-|-| |IBM i OS|V7R5M0| |Tech Refresh|2| |CCSID|1144| |SQL|Enabled |Source dates|Enabled ### Enabled features |/QOpenSys/pkgs/bin|/usr/bin|/QSYS.lib/ILEDITOR.lib|/QSYS.LIB|/QIBM/ProdData/IBMiDebugService/bin| |-|-|-|-|-| |bash|attr|GETNEWLIBL.PGM|QZDFMDB2.PGM|startDebugService.sh| |git|iconv|||| |ls|setccsid|||| |md5sum|tar|||| |sort||||| |stat|||||
Shell env ```bash ```
Variants ```json { "american": "#@$", "local": "£§$" } ```
Errors ```json [ { "command": "system \"CHKOBJ OBJ(QSYS/QCPTOIMPF) OBJTYPE(*DTAARA)\"", "code": 255, "stderr": "CPF9801: Non trovato l'oggetto QCPTOIMPF nella libreria QSYS.", "cwd": "/home/USER" }, { "command": "system \"CHKOBJ OBJ(QSYS/QCPFRMIMPF) OBJTYPE(*DTAARA)\"", "code": 255, "stderr": "CPF9801: Non trovato l'oggetto QCPFRMIMPF nella libreria QSYS.", "cwd": "/home/USER" }, { "command": "export BUILDLIB=\"QGPL\" && export CURLIB=\"QGPL\" && export USERNAME=\"USER\" && export HOST=\"hostname\" && export HOME=\"/home/USER\" && export LIBLS=\"LIBRARY LIST\" && env", "code": 1, "stderr": "bsh: BUILDLIB=QGPL: is not an identifier", "cwd": "/home/USER" } ] ```
worksofliam commented 11 months ago

@alfax218

Please share the entire Code for IBM i output so we can debug further. I just tested it and there was no issue for me. Thanks!

mprovvedi commented 11 months ago

@worksofliam

/home/USER: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')"

        SELECT
          b.avgrowsize as MBMXRL,
          a.iasp_number as MBASP,
          cast(a.system_table_name as char(10) for bit data) AS MBFILE,
          cast(b.system_table_member as char(10) for bit data) as MBNAME,
          coalesce(cast(b.source_type as varchar(10) for bit data), '') as MBSEU2,
          coalesce(b.partition_text, '') as MBMTXT,
          b.NUMBER_ROWS as MBNRCD,
          extract(epoch from (b.CREATE_TIMESTAMP))*1000 as CREATED,
          extract(epoch from (b.LAST_SOURCE_UPDATE_TIMESTAMP))*1000 as CHANGED
        FROM qsys2.systables AS a
          JOIN qsys2.syspartitionstat AS b
            ON b.table_schema = a.table_schema AND
              b.table_name = a.table_name
        WHERE
          cast(a.system_table_schema as char(10) for bit data) = 'SOURCELIB' 
          AND cast(a.system_table_name as char(10) for bit data) = 'QRPGLESRC'
          AND rtrim(cast(b.system_table_member as char(10) for bit data)) like 'WRKUSR%'

{
    "code": 0,
    "signal": null,
    "stdout": "DB2>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n  ?>\n\nMBMXRL               MBASP  MBFILE     MBNAME     MBSEU2     MBMTXT                                             MBNRCD               CREATED              CHANGED             \n-------------------- ------ ---------- ---------- ---------- -------------------------------------------------- -------------------- -------------------- --------------------\n                  92      0 QRPGLESRC WRKUSR     SQLRPGLE   Gestione utenti                                                    1074        1694531422000        1694450514000\n                  92      0 QRPGLESRC WRKUSR_H   RPGLEINC   Header gestione utenti                                               99        1694531422000        1694450514000\n                  92      0 QRPGLESRC WRKUSR_O   SQLRPGLE   Gestione utenti (old)                                              2235        1694531422000        1694450514000\n                  92      0 QRPGLESRC WRKUSRF0   PF         Log modifiche utenti da WRKUSR                                        7        1694531423000        1694450514000\n                  92      0 QRPGLESRC WRKUSRGF0  PF         Gruppi abilitati per WRKUSR                                           9        1694531423000        1694450514000\n                  92      0 QRPGLESRC WRKUSRV    DSPF       Video gestione utenti                                               379        1694531424000        1694450514000\n                  92      0 QRPGLESRC WRKUSRV_O  DSPF       Video gestione utenti (old)                                         375        1694531424000        1694450514000\n\n  7 RECORD(S) SELECTED.",
    "stderr": ""
}

/home/USER: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')"
SELECT IASP_NUMBER FROM TABLE(QSYS2.LIBRARY_INFO('SOURCELIB'))
{
    "code": 0,
    "signal": null,
    "stdout": "DB2>\n  ?>\n\nIASP_NUMBER \n------------\n           1\n\n  1 RECORD(S) SELECTED.",
    "stderr": ""
}

/home/USER: /QOpenSys/usr/bin/qsh
/usr/bin/grep -inHR -F "RANGE" /QSYS.LIB/SOURCELIB.LIB/QRPGLESRC.FILE/WRKUSR*.MBR
{
    "code": 0,
    "signal": null,
    "stdout": "/QSYS.LIB/SOURCELIB.LIB/QRPGLESRC.FILE/WRKUSR_O.MBR:642:      'RANGE(*NET) '+\n/QSYS.LIB/SOURCELIB.LIB/QRPGLESRC.FILE/WRKUSR_O.MBR:660:      'RANGE(*NET) '+",
    "stderr": ""
}
worksofliam commented 10 months ago

@alfax218 We've had some releases since this was created.

Is this still an issue for you?

mprovvedi commented 10 months ago

@worksofliam Yes, it's still an issue. I've done more tests since last time and it happens only on one source file, but I don't know why. I still can see the results in the output but only there.

worksofliam commented 10 months ago

@alfax218 Now that is interesting - only happens on a 'one' source file? As in, it works on others but not a specific one??

mprovvedi commented 10 months ago

@worksofliam It works on all the others souce files I've tried so far.

worksofliam commented 10 months ago

@alfax218 Any chance you can share more detail about this source file it doesn't work on? Perhaps a DSPFD OUTPUT(*PRINT) on it?

mprovvedi commented 10 months ago

I've found something else interesting. It depends on the filter. If there's something in the "member" section of the filter it fails, else it doesn't.

Here's an exemple. In my previous filter i was filtering all members with "WRK". With this condition I cannot find anything in the source file. Then I tried to remove the filter by member name, using "". Now I can find what I was looking for.

Also, I've tried to change the filters that preoviously were giving me results and, if I filter by member name, I get an error.

worksofliam commented 10 months ago

In my previous filter i was filtering all members with "WRK*". With this condition I cannot find anything in the source file.

Thanks. I will look into this