public async Task <bool> TryHandleCommandAsync(IImmutableSet <IProjectTree> nodes, long commandId, bool focused, long commandExecuteOptions, IntPtr variantArgIn, IntPtr variantArgOut) { MainThread.Assert(); if (commandId != RPackageCommandId.icmdCopyItemPath) { return(false); } var path = nodes.GetSingleNodePath(); var directory = await _interactiveWorkflowProvider.GetOrCreate().RSession.MakeRelativeToRUserDirectoryAsync(path); if (!string.IsNullOrEmpty(directory)) { directory.CopyToClipboard(); } return(true); }