Skip to content

Commit

Permalink
Handle errors in getAliases.R (#1334)
Browse files Browse the repository at this point in the history
* Update getAliases.R

* Report error

---------

Co-authored-by: Kun Ren <renkun@outlook.com>
  • Loading branch information
csaybar and renkun-ken authored Mar 24, 2023
1 parent d99a1f1 commit 17ac451
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 5 deletions.
11 changes: 10 additions & 1 deletion R/help/getAliases.R
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,19 @@ ret <- lapply(rownames(ip), function(row) {
aliases = NULL
)
if (file.exists(filename)) {
info[["aliases"]] <- as.list(readRDS(filename))
res <- tryCatch(
expr = as.list(readRDS(filename)),
error = conditionMessage
)
if (is.list(res)) {
info$aliases <- res
} else {
info$error <- res
}
}
info
})

names(ret) <- rownames(ip)

lim <- Sys.getenv("VSCR_LIM")
Expand Down
16 changes: 12 additions & 4 deletions src/helpViewer/helpProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,8 @@ interface PackageAliases {
aliasFile?: string;
aliases?: {
[key: string]: string;
}
},
error?: string
}
interface AllPackageAliases {
[key: string]: PackageAliases
Expand Down Expand Up @@ -221,9 +222,16 @@ export class AliasProvider {

// flatten aliases into one list:
const allAliases: rHelp.Alias[] = [];
for(const pkg in allPackageAliases){
const pkgName = allPackageAliases[pkg].package || pkg;
const pkgAliases = allPackageAliases[pkg].aliases || {};
for (const pkg in allPackageAliases) {
const item = allPackageAliases[pkg];
const pkgName = item.package || pkg;

if (item.error) {
void window.showErrorMessage(`An error occurred while reading the aliases file for package ${pkgName}: ${item.error}. The package files may be corrupted. Try reinstalling the package.`);
continue;
}

const pkgAliases = item.aliases || {};
for(const fncName in pkgAliases){
allAliases.push({
name: pkgAliases[fncName],
Expand Down

0 comments on commit 17ac451

Please sign in to comment.