pxtpy/pydecompiler.ts (30 lines): - line 58: // TODO handle types at initialization when ambiguous (e.g. x = [], x = None) - line 177: // TODO right now this uses a global name set, but really there should be options to allow shadowing - line 364: // TODO allow variables? - line 365: // TODO restrict to numbers? - line 375: // TODO body must not mutate loop variable - line 386: // TODO restrict initializers to expressions that aren't modified by the loop - line 409: // TODO allow += 1 - line 468: // TODO ensure x and z can't be mutated in the loop body - line 585: // TODO handle inheritence - line 592: let isEnum = s.members.every(isEnumMem) // TODO hack? - line 687: // TODO: reconcile with snippet.ts:getDefaultValueOfType. Unfortunately, doing so is complicated. - line 694: // TODO: support more types - line 757: // TODO determine captured variables, then determine global and nonlocal directives - line 758: // TODO helper function for determining if an expression can be a python expression - line 843: // out.push(`#let ${varNm}`) // TODO debug - line 900: // TODO distinguish === from == ? - line 904: // TODO distinguish !== from != ? - line 924: // TODO handle "--" & "++" generally. Seperate prefix and postfix cases. - line 956: // TODO handle implicit type conversions more generally - line 985: // TODO confirm the type is correct! - line 1003: else // TODO handle more cases like indexing? - line 1146: return throwError(s, 3010, "TODO: Unsupported call site where caller the arguments outnumber the callee parameters: " + s.getText()); - line 1165: // TODO inspect type info to rewrite things like console.log, Math.max, etc. - line 1218: // TODO we're speculatively emitting this expression. This speculation is only safe if emitExp is pure, which it's not quite today (e.g. getNewGlobalName) - line 1253: // TODO handle order-of-operations ? parenthesis? - line 1261: // TODO handle order-of-operations ? parenthesis? - line 1303: // TODO disallow keywords and built-ins? - line 1304: // TODO why isn't undefined showing up as a keyword? - line 1414: // TODO handle weird syntax? - line 1419: // TODO handle more expressions pxtpy/converter.ts (26 lines): - line 51: // TODO: move to utils - line 61: return B.mkStmt(B.mkText("TODO: " + v.kind)) - line 66: return B.mkText(" {TODO: " + v.kind + "} ") - line 117: // TODO: this could be null - line 141: // TODO handle specifc generic types like: SparseArray - line 179: if (tp == "T" || tp == "U") // TODO hack! - line 307: // TODO this is for testing mostly; we can do this lazily - line 411: // TODO cache it? - line 608: // TODO: handle assignablity beyond interfaces and classes, e.g. "any", generics, arrays, ... - line 653: // TODO: unification is too strict but should always be sound - line 660: // TODO: Ideally what we should do is track a "constraining type" similiar to how we track .union - line 735: // TODO optimize ? - line 927: return B.mkGroup([B.mkText("/* TODO: " + name + " "), e, B.mkText(" */")]) - line 933: return B.mkGroup([B.mkText("/* TODO: " + name + " "), B.mkGroup(n), B.mkText(" */"), B.mkNewLine()]) - line 1032: lst.push(B.mkText("TODO *" + args.vararg.arg)) - line 1034: lst.push(B.mkText("TODO **" + args.kwarg.arg)) - line 1123: // TODO: - line 1127: // player.onChat("while",function(num1:any;/**TODO:type**/){while(num1<10){;}}) - line 1129: // return B.mkText(": any /** TODO: type **/") - line 1617: // TODO handle more than 1 target - line 1651: // TODO: use or remove this code - line 1753: // TODO resuse with Name expr - line 2016: defvar(v, { isParam: true }) // TODO this leaks the scope... - line 2084: // TODO: consider generalizing this approach. - line 2586: // TODO look at scopes of let - line 2965: // TODO: infer type properly from function instead of bailing out here pxtcompiler/emitter/emitter.ts (12 lines): - line 716: // TODO: error message for overloaded function signatures? - line 842: // TODO add check for methods of generic classes - line 1530: // TODO we can probably drop this check - line 1928: // TODO this is now supported in runtime; can be probably relaxed (by using GetAccessor code path above) - line 2235: // TODO: checks for the rest needed - line 2243: // TODO: this is micro:bit specific and should be lifted out - line 2385: // TODO in VT accessor/field/method -> different - line 2630: // TODO: can we have overloeads? - line 2634: // TODO need to deal with refMask and tagged ints here - line 3013: // TODO add C++ support function to do this - line 3800: // TODO disable F on devices with FPU and hard ABI; or maybe altogether - line 4267: // TODO this should be changed to use standard indexer lookup and int handling cli/pyconv.ts (12 lines): - line 505: return B.mkStmt(B.mkText("TODO: " + v.kind)) - line 510: return B.mkText(" {TODO: " + v.kind + "} ") - line 793: return B.mkGroup([B.mkText("/* TODO: " + name + " "), e, B.mkText(" */")]) - line 799: return B.mkGroup([B.mkText("/* TODO: " + name + " "), B.mkGroup(n), B.mkText(" */"), B.mkNewLine()]) - line 836: lst.push(B.mkText("TODO *" + args.vararg.arg)) - line 838: lst.push(B.mkText("TODO **" + args.kwarg.arg)) - line 917: return B.mkText(": any; /** TODO: type **/") - line 1343: B.mkStmt(B.mkText("TODO: global: "), B.mkGroup(n.names.map(B.mkText))), - line 1345: B.mkStmt(B.mkText("TODO: nonlocal: "), B.mkGroup(n.names.map(B.mkText))), - line 1518: defvar(v, { isParam: true }) // TODO this leaks the scope... - line 1872: cmts.push("TODO: (below) " + currErrs) - line 1890: // TODO look at scopes of let pxtcompiler/emitter/snippets.ts (7 lines): - line 110: // TODO: a lot of this is duplicate logic with blocklyloader.ts:buildBlockFromDef; we should - line 155: // TODO: move out of getSnippet for general reuse - line 407: // TODO: generalize this to handle more types - line 456: // TODO: Generalize this to share implementation with FieldSpriteEditor in field_sprite.ts - line 523: // TODO: Generalize this to share editor mapping with blocklycustomeditor.ts - line 525: // TODO: Handle other field editor types - line 531: // TODO: generalize and unify this with getCompletions code cli/cli.ts (7 lines): - line 662: // TODO commit changes - line 2832: // TODO this seems to be dead code, additionalFilePath is removed from bundledpkgs - line 4294: // TODO probably this should be handled in the service host as it does become a perf concern - line 4404: // TODO: generate more helpful diags - line 4478: // TODO: this being necessary implies a bug somewhere in the incremental compile - line 4562: // TODO pass down 'quick' to disable the C++ extension work - line 5716: // TODO: correct resolution of static resources pxtsim/visuals/wiring.ts (7 lines): - line 52: //HACK/TODO: do real CSS encoding. - line 66: export interface WireOpts { //TODO: use throughout - line 106: //TODO: merge with mkCurvedWireSeg - line 168: //TODO: merge with mkOpenJumperEnd() - line 202: //TODO: merge with mkOpenJumperEnd() - line 251: //TODO: make this stupid class obsolete - line 372: //TODO: merge with drawWire() webapp/src/app.tsx (6 lines): - line 975: // TODO: start debugging session - line 976: // TODO: user friendly error message - line 1498: // TODO: find a better recovery for this. - line 3575: // TODO: what if svg is undefined? handle that scenario - line 3643: // FIXME: skillmap shares should set the metadata properly - line 4130: return Promise.resolve(); // TODO cleanup pxtlib/emitter/assembler.ts (5 lines): - line 1: // TODO: add a macro facility to make 8-bit assembly easier? - line 566: // TODO: why 4 and not 2? - line 651: // TODO: a word is machine-dependent (16-bit for AVR, 32-bit for ARM) - line 769: case ".globl": // TODO might need this one - line 1050: // TODO add: str X; ldr X -> str X ? pxtcompiler/emitter/languageservice.ts (5 lines): - line 43: // TODO: if this becomes expensive, this can be cached between calls since the same - line 110: // TODO: since keywords aren't exactly symbols, consider using a different - line 133: // TODO: get proper filename, fill out parameter info, handle qualified names - line 493: // TODO: share this with the "syntaxinfo" service - line 553: // TODO: use more context to filter keywords pxtsim/instructions.ts (5 lines): - line 131: //TODO: Refactor this function; it is too complicated. There is a lot of error-prone math being done - line 437: // TODO: don't special case this - line 518: //TODO: don't special case this - line 533: scale *= 0.5; //TODO: don't special case - line 580: pxsim.initCurrentRuntime(msg); // TODO it seems Runtime() ctor already calls this? pxtcompiler/emitter/backbase.ts (5 lines): - line 14: // TODO generate warning when seeing high character ? - line 178: this.t = t as any; // TODO in future, figure out if we follow the "Snippets" architecture - line 433: // TODO: remove ARM-specific code - line 1301: // TODO should inline this? - line 1640: // TODO can use InlineRefAction_vtable or something to limit the size of the thing pxtlib/cpp.ts (4 lines): - line 482: // TODO: need int16_t - line 873: // TODO check for conflicts - line 1060: // TODO merge configjson - line 1195: // TODO test in iOS Safari webapp/src/cloud.ts (4 lines): - line 260: // TODO: do we want a better or more descriptive name? - line 369: // TODO: Support passing a set of header ids to listAsync. Requires backend change. - line 489: // TODO: This is too heavy handed. We can be more fine grain here with some work. - line 559: // TODO https://github.com/microsoft/pxt-arcade/issues/3129: this branch is being hit WAY too often. webapp/src/blocks.tsx (4 lines): - line 771: // TODO: Add accessible blocks plugin from Blockly - line 851: // TODO: remove this, we won't use it anymore - line 889: return; // TODO support serving package docs in docs frame. - line 1025: // TODO: make warning mode look good webapp/src/projects.tsx (4 lines): - line 947: return this.isLink(type) && type != "forumExample" // TODO (shakao) migrate forumurl to otherAction json in md - line 1086: // TODO (jwunderl) temporarily disabled in electron re: https://github.com/microsoft/pxt-arcade/issues/2346; - line 1089: // TODO (shakao) migrate forumurl to otherAction json in md - line 1152: return asLink ? // TODO (shakao) migrate forumurl to otherAction json in md pxtcompiler/emitter/backvm.ts (3 lines): - line 362: // TODO would be nice to include version number of editor... - line 774: // TODO implementation of op_callget needs to auto-bind if needed - line 778: // TODO impl of op_calliface needs to call getter and then the lambda if needed pxtsim/debugger.ts (3 lines): - line 248: // TODO: We could theoretically visualize the individual fibers - line 456: // FIXME: Make this dependency explicit - line 516: * TODO: Currently, we only support locals and globals (no closures) webapp/src/headerbar.tsx (3 lines): - line 105: // TODO: "sandbox" view components are temporary share page layout - line 189: // TODO: eventually unify these components into one menu - line 228: // TODO: temporary place for tutorial name, we will eventually redesign the header for tutorial view webapp/src/editortoolbar.tsx (3 lines): - line 100: // TODO: do anything? - line 214: const collapsed = true; // TODO: Cleanup this - line 372: {/* TODO clean this; make it just getCompileButton, and set the buttons fontsize to 0 / the icon itself back to normal to just hide text */} pxtsim/allocator.ts (3 lines): - line 99: //TODO: port - line 204: //TODO: better handling of allocation errors - line 351: const totalColumnsCount = visuals.BREADBOARD_MID_COLS; //TODO allow multiple breadboards pxtsim/runtime.ts (3 lines): - line 984: // TODO: origins - line 1028: // TODO fix this - line 1508: // TODO generate the right panic codes pxtlib/util.ts (3 lines): - line 116: const buffer = new Uint8Array(s.length); // TODO unicode - line 1449: // TODO does this only support trusted data? - line 1718: // FIXME: This is a little dangerous, because we do edit the symbol attributes in some places webapp/src/snippetBuilder.tsx (3 lines): - line 45: * TODO: - line 287: // TODO: handle parameter mismatch like on_collision's "kind" field. - line 542: // TODO: support more .ts fields than just "initialOutput" pxtcompiler/emitter/service.ts (3 lines): - line 1: // TODO: enable reference so we don't need to use: (pxt as any).py - line 69: // // TODO translate type - line 975: // TODO: "allDiags" sounds like it's just reading state pxtlib/docsrender.ts (3 lines): - line 72: //TODO: Add equivalent support for youtu.be links - line 180: /** TODO: when all targets bumped to include https://github.com/microsoft/pxt/pull/6058, - line 251: /** TODO: when all targets bumped to include https://github.com/microsoft/pxt/pull/6058, gulpfile.js (3 lines): - line 224: // TODO: Copied from Jakefile; should be async - line 235: // TODO: Copied from Jakefile; should be async - line 253: // TODO: Copied from Jakefile; should be async webapp/src/cloudsync.ts (3 lines): - line 1: // TODO cloud save indication in the editor somewhere - line 152: // TODO detect expired token here - line 216: // TODO: rememberme review this when implementing goog/onedrive cli/buildengine.ts (3 lines): - line 243: // TODO maybe platformio has some option to do this? - line 439: // TODO: DAL specific code should be lifted out - line 493: // TODO: DAL-specific code pxtblocks/blocklycompiler.ts (3 lines): - line 331: // FIXME: Generics are not supported - line 921: // FIXME: Can't use default type here because TS complains about - line 1331: // FIXME: No need to do this if the previous statement was a code block pxtsim/embed.ts (2 lines): - line 279: // TODO: test origins - line 317: // TODO remove this; this should be using Runtime.runtime which gets pxtblocks/blocklylayout.ts (2 lines): - line 130: // TODO: REMOVE THIS WHEN FIXED IN PXT-BLOCKLY - line 170: && !BrowserUtils.isUwpEdge(); // TODO figure out why screenshots are not working in UWP; disable for now pxtsim/visuals/genericboard.ts (2 lines): - line 122: //TODO: handle wireframe mode - line 245: //TODO: extract constants pxtlib/service.ts (2 lines): - line 10: export const ON_START_COMMENT = "on start"; // TODO: Localize? (adding lf doesn't work because this is run before translations are downloaded) - line 11: export const HANDLER_COMMENT = "code goes here"; // TODO: Localize? (adding lf doesn't work because this is run before translations are downloaded) webapp/src/snippetBuilderInputHandler.tsx (2 lines): - line 172: * TODO: Slider is not full width on Mozilla only - line 252: {/* TODO: onChange shouldn't assume string */} webapp/src/tsworker.ts (2 lines): - line 20: // FIXME: It would be nice to not create a whole second language service and just use - line 85: // APIs without weight are assumed to have a weight of 0 (FIXME: in the toolbox, it's actually 50) webapp/src/share.tsx (2 lines): - line 106: // TODO investigate why edge does not render well - line 364: // TODO: parts aspect ratio webapp/src/filelist.tsx (2 lines): - line 32: * TODO: ${lf("describe your function here")} - line 43: * TODO: ${lf("describe your function here")} pxtcompiler/emitter/driver.ts (2 lines): - line 2: // TODO: enable reference so we don't need to use: (pxt as any).py - line 408: // TODO: ensure that main.ts is last??? pxtlib/auth.ts (2 lines): - line 630: // TODO: Is it correct to clear continuation hash? - line 632: // TODO: Show a message to the user (via rewritten continuation path)? pxtsim/utils.ts (2 lines): - line 110: // TODO: Move this polyfill to a more appropriate file. It is left here for now because moving it causes a crash in IE; see PXT issue #1301. - line 203: // TODO use Math.imul if available pxtcompiler/emitter/hexfile.ts (2 lines): - line 990: let no = parseInt(m[1]) // TODO lookup assembly file name - line 1076: // TODO more dynamic check for source size skillmap/src/App.tsx (2 lines): - line 44: // TODO: this file needs to read colors from the target - line 147: // TODO: include the pxt webconfig so that we can get the commitcdnurl (and not always pass live=true) pxtcompiler/emitter/ir.ts (2 lines): - line 1: // TODO remove decr() on variable init - line 2: // TODO figure out why undefined initializer generates code pxtsim/visuals/boardhost.ts (2 lines): - line 142: //TODO: move to wiring.ts - line 233: //TODO: seperate simulation behavior from builtin visual webapp/src/pxtjson.tsx (2 lines): - line 184: // TODO add read-only support - line 190: // TODO validate? pxtblocks/blocklydiff.ts (1 line): - line 412: // TODO merge pxtpy/unicode.ts (1 line): - line 15: ch === 9 || ch === 11 || ch === 12 || // TODO check this with CPython webapp/src/serial.tsx (1 line): - line 51: // TODO: It'd be great to re-render this component dynamically when the contrast changes, webapp/src/cmds.ts (1 line): - line 411: // TODO: web USB is currently disabled in electron app, but should be supported. webapp/src/codecard.tsx (1 line): - line 149: // TODO: alternate icons depending on state pxtcompiler/emitter/backthumb.ts (1 line): - line 204: // TODO optimize sequences of pops without decr into sub on sp skillmap/src/styles/infopanel.css (1 line): - line 130: /* VVN TODO COLORS */ pxteditor/monaco.ts (1 line): - line 125: accessibilityHelpUrl: "", //TODO: Add help url explaining how to use the editor with a screen reader pxtlib/tilemap.ts (1 line): - line 1303: // FIXME: we should get the "image.ofBuffer" and blockIdentity from pxtarget probably webapp/src/components/ImageEditor/keyboardShortcuts.ts (1 line): - line 132: // TODO: if we need to generalize for different numbers of colors, webapp/src/monacoEditAmendments.ts (1 line): - line 58: const amendmentMarker = `#AMENDMENT:` // TODO: generalize for TS if needed theme/common.less (1 line): - line 202: width: @customScrollbarWidth; // TODO: remove this when the sim breakpoint is fixed webapp/src/components/tutorial/TutorialContainer.tsx (1 line): - line 18: tutorialOptions?: pxt.tutorial.TutorialOptions; // TODO (shakao) pass in only necessary subset cli/nodeutil.ts (1 line): - line 123: // TODO: use token if available pxtrunner/renderer.ts (1 line): - line 442: // TODO should this use pxt.outputName() and not pxtc.BINARY_HEX webapp/src/components/ImageEditor/ImageCanvas.tsx (1 line): - line 332: // TODO: If there isn't currently a marqueed selection, escape should save and close the field editor webapp/src/debuggerVariables.tsx (1 line): - line 95: // TODO: Handle callstack webapp/src/hinttooltip.tsx (1 line): - line 62: // TODO: if/when we add more hints, should discuss whether this count is across all hints or per-hint pxtblocks/fields/field_sprite.ts (1 line): - line 85: // TODO: Refactor to share implementation. pxtsim/simdriver.ts (1 line): - line 178: // TODO set some visual on the simulator frame pxtcompiler/emitter/keywordHelp.ts (1 line): - line 3: // TODO: Fill these in for TypeScript pxtpy/lexer.ts (1 line): - line 352: // TODO add support for octal (\123) docfiles/macros.html (1 line): - line 153: