UNPKG

@jupyter-lsp/jupyterlab-lsp

Version:

Language Server Protocol integration for JupyterLab

97 lines 2.65 kB
export const RPY2_MAX_ARGS = 10; export function extractArgs(args, contentPosition) { let inputs = []; let outputs = []; let others = []; for (let i = 0; i < args.length; i = i + 2) { let arg = args[i]; let variable = args[i + 1]; if (arg == null) { break; } else if (arg === 'i' || arg === '-input') { inputs.push(variable); } else if (arg === 'o' || arg === '-output') { outputs.push(variable); } else { others.push('-' + arg + ' ' + variable); } } return { inputs: inputs, outputs: outputs, rest: args[args.length + contentPosition], others: others }; } export function parseArgs(args, contentPosition) { let { inputs, outputs, rest, others } = extractArgs(args, contentPosition); let inputVariables = inputs.join(', '); if (inputVariables) { inputVariables = ', ' + inputVariables; } let outputVariables = outputs.join(', '); if (outputVariables) { outputVariables = outputVariables + ' = '; } return { content: rest, others: others.join(' '), inputs: inputVariables, outputs: outputVariables }; } export function reversePattern(quote = '"', multiLine = false, magic = 'R') { return ('(\\S+)?' + '(?:, (\\S+))?'.repeat(9) + '( = )?rpy2\\.ipython\\.rmagic\\.RMagics.' + magic + '\\(' + quote + (multiLine ? '([\\s\\S]*)' : '(.*?)') + quote + ', "(.*?)"' + '(?:, (\\S+))?'.repeat(10) + '\\)'); } export function reverseReplacement(match, ...args) { let outputs = []; for (let i = 0; i < 10; i++) { if (args[i] == null) { break; } outputs.push(args[i]); } let inputs = []; for (let i = 13; i < 23; i++) { if (args[i] == null) { break; } inputs.push(args[i]); } let inputVariables = inputs.join(' -i '); if (inputVariables) { inputVariables = ' -i ' + inputVariables; } let outputVariables = outputs.join(' -o '); if (outputVariables) { outputVariables = ' -o ' + outputVariables; } let contents = args[11]; let otherArgs = args[12]; if (otherArgs) { otherArgs = ' ' + otherArgs; } return { input: inputVariables, output: outputVariables, other: otherArgs, contents: contents }; } export function argsPattern(maxN) { return '(?: -(\\S+) (\\S+))?'.repeat(maxN); } //# sourceMappingURL=rpy2.js.map