@@ -59,22 +59,25 @@ export async function serverActions(): Promise<void> {
5959 return ;
6060 } ) ;
6161 }
62+ const file = currentFile ( ) ;
63+ const classname = file && file . name . toLowerCase ( ) . endsWith ( ".cls" ) ? file . name . slice ( 0 , - 4 ) : "" ;
64+ const classnameEncoded = encodeURIComponent ( classname ) ;
6265 const connInfo = `${ host } :${ port } [${ nsEncoded } ]` ;
6366 const serverUrl = `${ https ? "https" : "http" } ://${ host } :${ port } ` ;
6467 const portalUrl = `${ serverUrl } /csp/sys/UtilHome.csp?$NAMESPACE=${ nsEncoded } ` ;
65- const classRef = `${ serverUrl } /csp/documatic/%25CSP.Documatic.cls?LIBRARY=${ nsEncoded } ` ;
68+ const classRef = `${ serverUrl } /csp/documatic/%25CSP.Documatic.cls?LIBRARY=${ nsEncoded } ${
69+ classname ? "&CLASSNAME=" + classnameEncoded : ""
70+ } `;
6671 const iris = workspaceState . get ( workspaceFolder + ":iris" , false ) ;
6772 const usernameEncoded = encodeURIComponent ( username ) ;
6873 const passwordEncoded = encodeURIComponent ( password ) ;
6974 const auth = iris
7075 ? `&IRISUsername=${ usernameEncoded } &IRISPassword=${ passwordEncoded } `
7176 : `&CacheUserName=${ usernameEncoded } &CachePassword=${ passwordEncoded } ` ;
7277 let extraLinks = 0 ;
73- const file = currentFile ( ) ;
74- const classname = file && file . name . match ( / c l s $ / i) ? file . name : "" ;
7578 for ( const title in links ) {
7679 let link = String ( links [ title ] ) ;
77- if ( classname == "" && link . includes ( "${classname}" ) ) {
80+ if ( classname == "" && ( link . includes ( "${classname}" ) || link . includes ( "${classnameEncoded}" ) ) ) {
7881 continue ;
7982 }
8083 link = link
@@ -84,7 +87,8 @@ export async function serverActions(): Promise<void> {
8487 . replace ( "${serverAuth}" , auth )
8588 . replace ( "${ns}" , nsEncoded )
8689 . replace ( "${namespace}" , ns == "%SYS" ? "sys" : nsEncoded . toLowerCase ( ) )
87- . replace ( "${classname}" , classname ) ;
90+ . replace ( "${classname}" , classname )
91+ . replace ( "${classnameEncoded}" , classnameEncoded ) ;
8892 actions . push ( {
8993 id : "extraLink" + extraLinks ++ ,
9094 label : title ,
@@ -99,14 +103,14 @@ export async function serverActions(): Promise<void> {
99103 } ) ;
100104 }
101105 actions . push ( {
102- detail : portalUrl ,
103106 id : "openPortal" ,
104107 label : "Open Management Portal" ,
108+ detail : portalUrl ,
105109 } ) ;
106110 actions . push ( {
107- detail : classRef ,
108111 id : "openClassReference" ,
109- label : "Open Class Reference" ,
112+ label : "Open Class Reference" + ( classname ? ` for ${ classname } ` : "" ) ,
113+ detail : classRef ,
110114 } ) ;
111115 if (
112116 ! vscode . window . activeTextEditor ||
0 commit comments