Hi @worksofliam ,
If the dcl-ds is not ending with semicolon then the range is only taking the single line of dcl-ds. Following is sample test case. The first dcl-ds shows the range correctly till end-ds, where as the second dcl-ds is only considering dcl-ds range.
**free
dcl-s myprogramText char(20);
dcl-ds name qualified dim;
end-ds;
dcl-ds name qualified dim
end-ds;
Reference issue: https://github.ibm.com/ibmi-toronto/vscode-wca4i/issues/277