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);
        }