scala/scala-impl/src/org/jetbrains/plugins/scala/statistics/ScalaActionUsagesCollector.scala (18 lines): - line 19: private val Group = new EventLogGroup("scala.actions", 2): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 21: private val TypeInfoEvent = Group.registerEvent("type.info"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 22: private val XRayModeEvent = Group.registerEvent("x-ray.mode", new LongEventField("duration")): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 23: private val ShowImplicitParametersEvent = Group.registerEvent("show.implicit.parameters"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 24: private val GoToImplicitConversionEvent = Group.registerEvent("go.to.implicit.conversion"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 25: private val StructureViewEvent = Group.registerEvent("structure.view"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 26: private val OptimizeImportsEvent = Group.registerEvent("optimize.imports"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 27: private val CreateFromUsageEvent = Group.registerEvent("createFromUsage"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 28: private val OverrideImplementEvent = Group.registerEvent("overrideImplement"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 29: private val DesugarCodeEvent = Group.registerEvent("desugar.code"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 30: private val RearrangeEvent = Group.registerEvent("rearrange"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 31: private val ConvertFromJavaEvent = Group.registerEvent("convert.javatext"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 32: private val RunWorksheetEvent = Group.registerEvent("worksheet"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 34: private val ScFileModeSetWorksheetEvent = Group.registerEvent("sc.file.set.worksheet"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 35: private val ScFileModeSetAmmoniteEvent = Group.registerEvent("sc.file.set.ammonite"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 36: private val ScFileModeSetAutoEvent = Group.registerEvent("sc.file.set.auto"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 38: private val IncrementalityTypeSetSbtEvent = Group.registerEvent("compiler.inc.type.set.sbt"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 39: private val IncrementalityTypeSetIdeaEvent = Group.registerEvent("compiler.inc.type.set.idea"): @nowarn("cat=deprecation") // TODO: SCL-24479 scala/scala-impl/src/org/jetbrains/plugins/scala/lang/psi/api/ScalaElementVisitor.scala (16 lines): - line 60: // TODO visitDeclaration - line 80: // TODO visitDeclaration - line 102: // TODO visitDeclaration - line 103: // TODO visitValueOrVariable - line 106: // TODO visitDeclaration - line 107: // TODO visitValueOrVariable - line 109: // TODO visitValueOrVariable - line 111: // TODO visitValueOrVariable - line 134: // TODO visitReference - line 135: // TODO visitExpression - line 137: // TODO visitMethodInvocation - line 139: // TODO visitMethodInvocation - line 144: // TODO visitMethodInvocation - line 147: // TODO visitMethodInvocation - line 174: // TODO visitReference - line 208: // TODO visitScalaElement scala/scala-impl/src/org/jetbrains/plugins/scala/project/package.scala (14 lines): - line 231: // TODO Generalize: hasScala(Version => Boolean), hasScala(_ >= Scala3) - line 505: // TODO Generalize: hasScala(Version => Boolean), hasScala(_ >= Scala3) - line 525: //TODO: currently this is an extension method on a project - line 530: //TODO: in platform print a warning when code style is used on the in-memory, synthetic file OR alternative conditions - when it's outside source roots with editor config - line 565: // TODO: SCL-18097: it should be per-module, like for all other compiler flags (e.g. for isSAMEnabled) - line 617: // TODO May also be a library file (source or compiled), SCL-20935 - line 620: /** TODO: document, maybe even rename to something better, like "actual module", "effective module" */ - line 674: // TODO: this is a dirty hack to suppress skipping features check in unit tests - line 680: // TODO The same as ScalaFeatures (Scala versions, isSource3Enabled vs hasSource3Flag, etc.), SCL-20935 - line 686: // TODO Used as isInScala3File, but library files have no module, SCL-20935 - line 687: // TODO Library source files are not compiled, SCL-20935 - line 810: // TODO Determine Scala version of libraries without using module, SCL-20935 - line 824: // TODO Predicates are not applicable to library files, because they have neither module nor project, SCL-20935 - line 825: // TODO Library source files are not compiled, SCL-20935 scala/scala-impl/src/org/jetbrains/plugins/scala/statistics/ScalaRefactoringUsagesCollector.scala (13 lines): - line 16: private val Group = new EventLogGroup("scala.refactoring", 1): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 18: private val RenameLocalEvent = Group.registerEvent("rename.local"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 19: private val RenameMemberEvent = Group.registerEvent("rename.member"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 20: private val MoveFileEvent = Group.registerEvent("move.file"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 21: private val MoveClassEvent = Group.registerEvent("move.class"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 22: private val IntroduceVariableEvent = Group.registerEvent("introduce.variable"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 23: private val IntroduceTypeAliasEvent = Group.registerEvent("introduce.type.alias"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 24: private val IntroduceFieldEvent = Group.registerEvent("introduce.field"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 25: private val IntroduceParameterEvent = Group.registerEvent("introduce.parameter"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 26: private val ExtractMethodEvent = Group.registerEvent("extract.method"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 27: private val ExtractTraitEvent = Group.registerEvent("extract.trait"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 28: private val InlineEvent = Group.registerEvent("inline"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 29: private val ChangeSignatureEvent = Group.registerEvent("change.signature"): @nowarn("cat=deprecation") // TODO: SCL-24479 sbt/sbt-impl/src/org/jetbrains/sbt/project/SbtProjectResolver.scala (12 lines): - line 153: new FailureResult(startTime, endTime, Collections.emptyList[ESFailure]) // TODO error list - line 196: else Duration.Inf // TODO some kind of timeout / cancel mechanism - line 213: // TODO add error/warning messages during dump, report directly - line 353: // TODO add default scala sdk and sbt libs (newest versions or so) - line 585: // TODO put some of this logic elsewhere in resolving process? - line 792: basePackage = basePackages.headOption, // TODO Rename basePackages to basePackage in sbt-ide-settings? - line 806: // TODO use options for description, value and handle them in the UI appropriately - line 862: // TODO use both ID and Name when related flaws in the External System will be fixed - line 863: // TODO explicit canonical path is needed until IDEA-126011 is fixed - line 931: // TODO use both ID and Name when related flaws in the External System will be fixed - line 932: // TODO explicit canonical path is needed until IDEA-126011 is fixed - line 1201: // TODO explicit canonical path is needed until IDEA-126011 is fixed scala/scala-impl/src/org/jetbrains/plugins/scala/lang/formatting/processors/ScalaSpacingProcessor.scala (10 lines): - line 46: // TODO: setup SCoverage for scala plugin, run tests and see - line 49: // TODO: uncomment suppressing of ScalaDeprecation - line 58: // TODO: minimize getText usages - line 218: // TODO: it's not good for performance to extract entire file text on each reformat - line 667: //TODO (minor) we ask `isInScala3File` for every block, which is not optimal (it requires tree traversal to parent every time) - line 839: // TODO: do we need separate settings for : block syntax - line 923: case (_: ScEnumCase, Class) => 0 // TODO: add a setting for enum cases - line 972: // TODO: this behaviour was implemented long ago in 2008 but it doesn't work well - line 1048: //FIXME: this is a quick hack to stop method signature in scalaDoc from getting disrupted. (#SCL-4280) - line 1510: //TODO: duplicate? scala/scala-impl/src/org/jetbrains/plugins/scala/editor/documentationProvider/ScalaDocQuickInfoGenerator.scala (10 lines): - line 29: // TODO 1: analyze performance and whether rendered info is cached? - line 30: // TODO 2: (!) quick info on the element itself should lead to "Show find usages" tooltip, no to quick info tooltip - line 32: // TODO 3: add minimum required module/location, if class/method is in same scope, do not render module/location at all - line 59: //TODO: not supported yet - line 150: // TODO: for case classes Product is displayed but Serializable is not, UNIFY1 - line 178: // TODO: this is bad hack cause `with Object` can be displayed in many other places for trait, e.g. for method return type - line 223: // TODO: should we remove [] from getLocationString (see renderClassHeader and unify) - line 242: * TODO: improve SCL-17582 - line 299: // TODO: more cases... like constructor-pattern+case-class - line 357: // TODO: add some header with location info if it's function function parameter (currently none generated at all) sbt/sbt-impl/src/org/jetbrains/sbt/shell/SbtProjectTaskRunnerImpl.scala (9 lines): - line 45: // TODO this includes tests (and what else?). sbt should handle it and test output should be parsed - line 66: // TODO Android AARs are currently imported as modules. need a way to filter them away before building - line 104: // TODO user feedback - line 127: // TODO sensible way to find out what scopes to run it for besides compile and test? - line 128: // TODO make tasks should be user-configurable - line 158: // TODO: PerformInBackgroundOption is deprecated, ProgressManager.run(Task) is obsolete. See IJPL-384 - line 197: // TODO consider running module build tasks separately - line 219: // TODO: Improve handling of canceled builds. - line 234: // TODO: investigate whether the code below is still necessary when the build is canceled. scala/scala-impl/src/org/jetbrains/plugins/scala/extensions/package.scala (8 lines): - line 105: name != "getInstance" && // TODO others? - line 511: // TODO Rely on ScalacPatches for multiline literals - line 512: // TODO: rename to reflect that it's line separator - line 516: // TODO: remove, and use stripTrailing() (available since JDK 11) - line 762: // TODO Scala 2.13: use Iterator.unfold to extract prevElements and nextElements methods - line 1475: //TODO: remove these shit implicit conversions? - line 1709: case st: StubBasedPsiElementBase[_] => st.getStubOrPsiChildren(elementType, f): @nowarn("cat=deprecation") // TODO: SCL-23400 - line 1798: TODO: convert to a macro bsp-builtin/bsp/src/org/jetbrains/bsp/project/BspTask.scala (8 lines): - line 133: // TODO start/finish task for individual builds - line 137: // TODO report all exceptions? - line 162: // TODO report full error to log? - line 175: // TODO report full error to log? - line 223: // TODO handle message type (warning, error etc) in output - line 224: // TODO use params.requestId to show tree structure - line 228: // TODO build toolwindow log supports ansi colors, but not some other stuff - line 249: // TODO use params.originId to show tree structure scala/scala-impl/src/org/jetbrains/plugins/scala/statistics/ScalaProjectSettingsCollector.scala (7 lines): - line 63: private val Group = new EventLogGroup("scala.project.settings", 1): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 67: private val SbtShellBuildEvent = Group.registerEvent("sbt.shell.build"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 68: private val SbtIdeaBuildEvent = Group.registerEvent("sbt.idea.build"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 70: private val CompilerIncTypeUsedSbtEvent = Group.registerEvent("compiler.inc.type.used.sbt"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 71: private val CompilerIncTypeUsedIdeaEvent = Group.registerEvent("compiler.inc.type.used.idea"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 72: private val CompilerCompileServerUsedEvent = Group.registerEvent("compiler.compile.server.used"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 73: private val ProjectViewHighlightingEvent = Group.registerEvent("project.view.highlighting"): @nowarn("cat=deprecation") // TODO: SCL-24479 scala/scala-impl/src/org/jetbrains/plugins/scala/statistics/ScalaAnnotatorUsagesCollector.scala (7 lines): - line 16: private val Group = new EventLogGroup("scala.annotator", 1): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 18: private val TypeAwareEvent = Group.registerEvent("file.with.type.aware.annotated"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 19: private val NonTypeAwareEvent = Group.registerEvent("file.without.type.aware.annotated"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 20: private val StructuralTypeEvent = Group.registerEvent("structural.type"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 21: private val ExistentialTypeEvent = Group.registerEvent("existential.type"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 22: private val MacroDefinitionEvent = Group.registerEvent("macro.definition"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 23: private val CollectionTypeHighlightingEvent = Group.registerEvent("collection.pack.highlighting"): @nowarn("cat=deprecation") // TODO: SCL-24479 scala/scala-impl/src/org/jetbrains/plugins/scala/annotator/TypeDiff.scala (7 lines): - line 19: // TODO Work in progress (it's not yet clear what's the best way to implement this functionality) - line 20: // TODO First parse the trees and then compare them? (but how to balance placeholders?) - line 63: // TODO refactor (decompose, unify, etc.) - line 72: // TODO Comparison (now, it's just "parsing" for the type annotation hints) - line 83: // TODO More flexible comparison, unify with the clause above - line 87: // TODO Comparison (now, it's just "parsing" for the type annotation hints) - line 192: // TODO Move to ParameterizedType.scala / FunctionType.scala? sbt/sbt-impl/src/org/jetbrains/sbt/shell/communication.scala (6 lines): - line 32: // TODO: this class has become too complicated, too much random state updates. - line 52: //TODO: rename to commandsQueue - line 104: // TODO it's some imperfection at this place to address in SCL-24338 - line 245: // TODO exception handling - line 419: //TODO: it seems like in practice "process terminated" is not used at all - line 628: // and then again when the shell becomes ready. TODO add "Start" shell state to get rid of this scala/worksheet/src/org/jetbrains/plugins/scala/worksheet/server/RemoteServerConnector.scala (6 lines): - line 30: // TODO: split to REPL and PLAIN args, change serialization format - line 31: // TODO: clean up this shit with arguments, half in constructor, half in method call - line 98: // TODO: make something more advanced than just `callback: Runnable`: error reporting, Future, Task, etc... - line 99: // TODO: add logging across all these callbacks in RunWorksheetAction, WorksheetCompiler, RemoteServerConnector... - line 102: originalFile: VirtualFile, // TODO: looks like no need in this parameter - line 172: // TODO: Explore a more elegant solution to this problem. scala/scala-impl/src/org/jetbrains/plugins/scala/highlighter/ScalaSyntaxHighlighter.scala (6 lines): - line 22: // TODO something is wrong with the highlighter, see comment in SCL-18701 - line 24: * TODO: Extract scaladoc highlighter completely, - line 149: // TODO: headers are excluded cause: - line 390: super.start(buffer, startOffset, endOffset, initialState) // TODO is it correct??? - line 392: // TODO State class - line 605: // TODO: for some reason XmlTokenType.XML_REAL_WHITE_SPACE "leaks" here, scala/scala-impl/src/org/jetbrains/plugins/scala/statistics/ScalaDebuggerUsagesCollector.scala (6 lines): - line 16: private val Group = new EventLogGroup("scala.debugger", 1): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 18: private val DebuggerEvent = Group.registerEvent("debugger"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 19: private val EvaluatorEvent = Group.registerEvent("evaluator"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 20: private val CompilingEvaluatorEvent = Group.registerEvent("compiling.evaluator"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 21: private val LambdaBreakpointEvent = Group.registerEvent("lambda.breakpoint"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 22: private val SmartStepIntoEvent = Group.registerEvent("smart.step.into"): @nowarn("cat=deprecation") // TODO: SCL-24479 scala/compiler-integration/src/org/jetbrains/plugins/scala/compiler/actions/internal/compilertrees/ShowScalaCompilerTreeAction.scala (6 lines): - line 26: //TODO: (big feature) don't ignore last bytecode generation phase, show decompiled classes (1. bytecode and 2. as Java) - line 27: //TODO: (big feature) add UI for extra Scala 3 options `-Xprint-*` - line 28: //TODO: (big feature) Scala 3 has option to print tasty, we can add it as well - line 29: //TODO: (big improvement) implement folding (check how it's done for "Show Decompiled Code" action, if it even works for it) - line 30: //TODO: show notifications on all steps (no file, no virtual file, no module, etc...) - line 31: //TODO: if not trees are parsed, show some notification (when there are still no errors) scala/scala-impl/src/org/jetbrains/plugins/scala/codeInspection/collections/EmptyCheckInspection.scala (6 lines): - line 18: // TODO infix notation? - line 27: // TODO infix notation? - line 40: // TODO infix notation? - line 56: // TODO infix notation? - line 64: // TODO infix notation? - line 93: // TODO infix notation? scala/worksheet/src/org/jetbrains/plugins/scala/worksheet/ammonite/ImportAmmoniteDependenciesFix.scala (5 lines): - line 31: // TODO: update versions - line 128: // TODO: we should improve this filtering, - line 140: // TODO: this is a bad solution: - line 185: // TODO: use something more user-friendly error handling - line 204: // TODO: why "versionS"? bsp-builtin/bsp/src/org/jetbrains/bsp/project/importing/BspResolverLogic.scala (5 lines): - line 60: scaladocExtraClasspath = Seq.empty, // FIXME pass in actual data when obtainable from BSP: https://github.com/build-server-protocol/build-server-protocol/issues/229 - line 107: val direct = start.getDependencies.asScala.flatMap(idToTarget.get) // TODO warning when dependencies are not in buildTargets - line 228: // TODO merge source dirs with mixed generated flag? - line 710: // TODO: The flat map below is cursed! It's too huge and imposible to follow. Refactor it! - line 1111: // FIXME set jdk from home or version scala/worksheet/src/org/jetbrains/plugins/scala/worksheet/processor/WorksheetDefaultSourcePreprocessor.scala (5 lines): - line 375: // TODO: fix for var a, b = 7 SCL-13307 - line 384: // TODO: fix for Scala 3 (SCL-21494) - line 485: // TODO: looks like this resN are not used anywhere and can be dropped (just print the value, except Unit type) - line 592: // TODO: do we need that import instanceName at all? - line 597: // TODO: do not display for resN: Unit, e.g. after println(42), () (not only display but do not create a resN for them) scala/scala-impl/src/org/jetbrains/plugins/scala/lang/lexer/core/_ScalaCoreLexer.flex (5 lines): - line 171: // TODO: remove this chech, this should always be false, cause $$ is handled by INTERPOLATED_STRING_ESCAPE pattern earlier - line 274: CHARACTER_LITERAL = "'"([^\\\'\r\n]|{ESCAPE_SEQUENCE}|{OCTAL_ESCAPE_LITERAL})("'"|\\) | \'\\u000A\' | "'''" // TODO: \'\\u000A\' is redundunt, remove - line 290: // TODO: rename, it's missleading - line 349: // TODO: remove this check: looks like it's a dead code, - line 486: // TODO: incomplete strings should be handled the same way with interpolated strings scala/scala-impl/src/org/jetbrains/plugins/scala/annotator/element/ScReferenceAnnotator.scala (5 lines): - line 39: // TODO unify with ScMethodInvocationAnnotator and ScConstructorInvocationAnnotator - line 58: !precursor.is[ScUnderscoreSection] && // TODO Highlight underscore rather than remainder, SCL-22148 - line 59: !precursor.asOptionOf[ScReferenceExpression].exists(_.resolve() != null) && // TODO Highlight expressions of non-inferred type? SCL-22150 - line 76: case _: ScDocResolvableCodeReference => // TODO Uniform, fine-grained highlighting, SCL-22154 - line 347: createFixesByUsages(reference) // TODO We can now use UnresolvedReferenceFixProvider to decoupte custom fixes from the annotator scala/compiler-integration-server-management/src/org/jetbrains/plugins/scala/compiler/CompileServerLauncher.scala (5 lines): - line 105: // TODO: track that we attach debug agent and show notification, as with JPS Build Process - line 106: // TODO: add internal action "Debug Scala Compile Server" as with JPS "Debug Build Process" - line 124: // TODO: make project "Option" - line 294: // TODO stop server more gracefully - line 551: // TODO: make it thread safe, call from a single thread OR use some locking mechanism scala/scala-impl/src/org/jetbrains/plugins/scala/statistics/ScalaProjectStateCollector.scala (5 lines): - line 69: private final val Group = new EventLogGroup("scala.project.state", 1): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 76: * TODO: remove it in ~ 2025.3, once there are 3 full releases that use `SbtSettingsCollector` - line 80: ): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 86: ): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 91: ): @nowarn("cat=deprecation") // TODO: SCL-24479 sbt/sbt-impl/src/org/jetbrains/sbt/project/modifier/SimpleBuildFileModifier.scala (5 lines): - line 21: * TODO: try to detect latest library version and use it instead of "latest.integration" - line 22: * TODO: insert changes directly in module definition instead of just appending it to the `build.sbt` file - line 48: //TODO: rewrite this? (the original comment is dated 2015) - line 61: //TODO: we must not use IntelliJ module name here - line 153: //TODO: this 'saveText' seems extremely weird here scala/conversion/src/org/jetbrains/plugins/scala/conversion/JavaToScala.scala (5 lines): - line 366: //TODO support Java pattern matching truly, see SCL-21510 - line 373: //TODO support Java pattern matching truly, see SCL-21510 - line 671: // TODO: eliminate amount of call - line 807: node.comments.beforeComments.append(LiteralExpression("//TODO: 'static' modifier is not supported\n")) - line 1193: //TODO: finish with tests SCL-21949 scala/worksheet-repl-interface/impls/impl_3_8/src/org/jetbrains/jps/incremental/scala/local/worksheet/repl_interface/ILoopWrapper38Impl.scala (5 lines): - line 13: wrapperReporter: ILoopWrapperReporter, // TODO: use when ReplDriver accepts reporter - line 50: driver.resetToInitial(Nil) // TODO: should we pass any settings here? - line 51: //TODO: ReplDriver has private field `shouldStart` which can set to false if repl driver can't be started - line 58: // TODO: should we cleanup something and how? - line 63: true // TODO: get the result from the driver when it implements this scala/integration/maven/src/org/jetbrains/plugins/scala/project/maven/ScalaMavenImporter.scala (5 lines): - line 82: // TODO configuration.vmOptions - line 187: val artifactResolveResult = embedder.resolveArtifactTransitively(artifacts, repositories): @nowarn("cat=deprecation") // TODO: deprecated to be replaced with a suspend fun. See IDEA-340501 - line 189: // TODO: ideally test scope dependencies shouldn't be downloaded at all (see IDEA-270126) - line 196: // TODO even the maintainer is not sure if it should be supported https://github.com/davidB/scala-maven-plugin/discussions/803 - line 249: // TODO create a more accurate solution to this problem scala/scala-impl/src/org/jetbrains/plugins/scala/annotator/element/ScTemplateDefinitionAnnotator.scala (5 lines): - line 232: // TODO package private - line 347: // TODO package private - line 431: // TODO package private - line 448: // TODO test - line 475: // TODO package private sbt/sbt-impl/src/org/jetbrains/sbt/shell/SbtShellRunner.scala (5 lines): - line 36: // TODO: why is this lazy val? acquireShellProcessHandler can create a new process handler process data with - line 45: // TODO: why is ignored? rethink API - line 83: // TODO: remove this branch after a fix in the platform. - line 118: // TODO update icon with ready/working state - line 153: // the exec action needs to be created here so it is registered. TODO refactor so we don't need this scala/scala-impl/src/org/jetbrains/plugins/scala/lang/resolve/ScalaResolveResult.scala (5 lines): - line 63: val notCheckedResolveResult: Boolean = false, //TODO: does not seem to be used anywhere - line 134: // TODO Seems to be unreliable, so it's better to check whether ImplicitCollector.probableArgumentsFor(it).size > 1 - line 148: resultUndef: Option[ConstraintSystem] = None, //@TODO: why not just add constraints to subst? - line 305: //TODO: unify this branch can be unified with `getClazzPrecedence` in 2022.3 - line 342: // TODO this conflates imported functions and imported implicit views. ScalaResolveResult should really store scala/scala-impl/src/org/jetbrains/plugins/scala/lang/scaladoc/lexer/ScalaDocTokenType.java (5 lines): - line 7: // TODO: rename to ScalaDocTokenTypes (with S in the end) - line 26: IElementType DOC_INNER_CODE_TAG = new ScalaDocElementType("DOC_INNER_CODE_TAG"); // TODO: rename to DOC_INNER_CODE_START - line 29: IElementType DOC_INNER_CLOSE_CODE_TAG = new ScalaDocElementType("DOC_INNER_CLOSE_CODE_TAG"); // TODO: rename to DOC_INNER_CLOSE_END - line 49: ScalaDocSyntaxElementType DOC_LINK_CLOSE_TAG = new ScalaDocSyntaxElementType("DOC_LINK_CLOSE_TAG", 0); // TODO: rename to DOC_LINK_END - line 50: // TODO: something is wrong with header parsing. scala/scala-impl/src/org/jetbrains/plugins/scala/annotator/element/ScExpressionAnnotator.scala (5 lines): - line 39: // TODO Annotating ScUnderscoreSection is technically correct, but reveals previously hidden red code in ScalacTestdataHighlightingTest.tuples_1.scala - line 40: // TODO see visitUnderscoreExpression in ScalaAnnotator - line 90: // TODO Can `type` do this automatically? - line 152: // TODO rename (it's not about size, but about inner / outer expressions) - line 233: // TODO fine-grained ranges scala/worksheet-repl-interface/impls/impl_3_3_0/src/org/jetbrains/jps/incremental/scala/local/worksheet/repl_interface/ILoopWrapper330Impl.scala (5 lines): - line 15: wrapperReporter: ILoopWrapperReporter, // TODO: use when ReplDriver accepts reporter - line 52: driver.resetToInitial(Nil) // TODO: should we pass any settings here? - line 53: //TODO: ReplDriver has private field `shouldStart` which can set to false if repl driver can't be started - line 60: // TODO: should we cleanup something and how? - line 65: true // TODO: get the result from the driver when it implements this scala/scala-impl/src/org/jetbrains/plugins/scala/annotator/createFromUsage/CreateEntityQuickFix.scala (4 lines): - line 31: // TODO add private modifiers for unqualified entities ? - line 32: // TODO use Java CFU when needed - line 33: // TODO find better place for fields, create methods after - line 113: // TODO: SCL-20799 scala/scala-impl/src/org/jetbrains/plugins/scala/lang/psi/types/ApplicabilityProblem.scala (4 lines): - line 18: //TODO , parameter - line 21: //TODO , parameter - line 30: //TODO expectedType -> parameter - line 43: // TODO AmbiguousOverloading(results: Seq[ScalaResolveResult]) extends ApplicabilityProblem ? scala/scala-impl/src/org/jetbrains/plugins/scala/lang/psi/impl/statements/ScFunctionImpl.scala (4 lines): - line 109: * TODO: what is the problem with doing processParameters unconditionally? - line 133: // TODO unify with ScValue and ScVariable - line 302: // TODO Should be unified, see ScModifierListOwner - line 338: override def findSuperMethods: Array[PsiMethod] = superMethods.toArray // TODO which other xxxSuperMethods can/should be implemented? scala/scala-impl/src/org/jetbrains/plugins/scala/editor/documentationProvider/HtmlPsiUtils.scala (4 lines): - line 24: //TODO: unify with org.jetbrains.plugins.scala.editor.documentationProvider.ScalaDocContentGenerator.hyperLinkToPsi - line 33: //TODO: unify with org.jetbrains.plugins.scala.editor.documentationProvider.ScalaDocContentGenerator.hyperLinkToPsi - line 60: // TODO: Re-implement after implementing soft keywords in ScalaDoc popups - line 70: //TODO: defLinkHighlight is a misleading name! rename it scala/scala-impl/src/org/jetbrains/plugins/scala/codeInspection/collections/HeadOrLastOptionInspection.scala (4 lines): - line 19: // TODO infix notation? - line 41: // TODO infix notation? - line 63: // TODO infix notation? - line 75: // TODO infix notation? scala/worksheet-repl-interface/impls/impl_3_1_2/src/org/jetbrains/jps/incremental/scala/local/worksheet/repl_interface/ILoopWrapper312Impl.scala (4 lines): - line 15: wrapperReporter: ILoopWrapperReporter, // TODO: use when ReplDriver accepts reporter - line 52: driver.resetToInitial(Nil) // TODO: should we pass any settings here? - line 58: // TODO: should we cleanup something and how? - line 63: true // TODO: get the result from the driver when it implements this bsp-builtin/bsp/src/org/jetbrains/bsp/project/importing/experimental/GenerateBspConfig.scala (4 lines): - line 38: return //TODO handle? - line 101: //TODO: currently this handles only two cases: sbt and sbt + bloop - line 102: //TODO: make it cancellable for both: SBT and Bloop - line 103: //TODO: it duplicates some code with BspProjectResolver.installBSPs scala/scala-impl/src/org/jetbrains/plugins/scala/annotator/element/ScForAnnotator.scala (4 lines): - line 88: // TODO decouple - line 109: // TODO decouple - line 116: // TODO decouple - line 125: // TODO decouple scala/scala-impl/src/org/jetbrains/plugins/scala/codeInspection/collections/SortedMaxMinInspection.scala (4 lines): - line 17: // TODO infix notation? - line 28: // TODO infix notation? - line 39: // TODO infix notation? - line 50: // TODO infix notation? scala/scala-impl/src/org/jetbrains/plugins/scala/editor/documentationProvider/ElementRenderer.scala (4 lines): - line 57: val annotations = rangeToKey.filter(_._1.contains(e.getTextRange)).map(_._2) // TODO Optimize - line 76: val text = e.getText.replaceAll("\"", """).replaceAll("<", "<").replaceAll("(?", ">") // TODO Escape => as well - line 78: if (e.getNode.getElementType == ScalaTokenTypes.tIDENTIFIER && e.getParent.is[ScParameter]) text else { // TODO Highlight parameters - line 83: if (a.getForegroundColor == null && a.getFontType == Font.PLAIN && !link.startsWith(" - line 425: - line 652: scala/scala-impl/src/org/jetbrains/plugins/scala/lang/transformation/Transformer.scala (4 lines): - line 19: // TODO return updated element instead of Boolean to enable fine-grained recursion - line 40: // TODO rely on a single set of transformers, use different means of ordering transformer applications - line 73: // TODO use in debugger's "evaluate expression" to simpify its code and to support many language features automatically (e.g. string interpolation) - line 74: // TODO support fine-grained recursion with dependencies scala/scala-impl/src/org/jetbrains/plugins/scala/lang/findUsages/ScalaUsageTypeProvider.scala (4 lines): - line 39: // TODO more of these, including Scala specific: case class/object, pattern match, type ascription, ... - line 64: //TODO: Only run this logic for references or leaf elements? - line 157: //TODO: handle @targetName in Scala 3? - line 220: //TODO: handle Scala 3 universal apply syntax scala/scala-impl/src/org/jetbrains/plugins/scala/statistics/SbtShellCommandsUsagesCollector.scala (4 lines): - line 28: private val Group = new EventLogGroup("scala.sbt", 1): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 30: private val ShellCommandEvent = Group.registerEvent("shell.execute.command"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 31: private val ShellTestCommandEvent = Group.registerEvent("shell.test.command"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 32: private val ShellTestRunCommandEvent = Group.registerEvent("shell.test.run.command"): @nowarn("cat=deprecation") // TODO: SCL-24479 scala/scala-impl/src/org/jetbrains/plugins/scala/codeInspection/packageNameInspection/ScalaPackageNameInspection.scala (4 lines): - line 23: // TODO Handle content and source roots that are files rather than directories - line 24: // TODO Handle nested content and source roots - line 57: // TODO Reuse sourceFolder to compute a relative path - line 133: // TODO There's no need to iterate over source roots of other modules scala/scala-impl/src/org/jetbrains/plugins/scala/lang/lexer/ScalaTokenTypes.java (4 lines): - line 60: // TODO: add a space between `interpolated` and `multiline` in debug name - line 65: // TODO: rename it, it represents "$$" (dollar escape) "interpolated string escape" is misleading - line 158: // TODO: remove tFUNTYPE_ASCII from everywhere, it's not actually used in lexer or parser - line 268: // tWRONG_LINE_BREAK_IN_STRING // TODO: should we add it here? scala/scala-impl/src/org/jetbrains/plugins/scala/annotator/element/ScConstructorInvocationAnnotator.scala (4 lines): - line 23: // TODO unify with ScMethodInvocationAnnotator and ScReferenceAnnotator - line 37: // TODO duplication with application annotator. - line 69: } yield resolveResult.copy(isAccessible = accessible) // TODO Resolve should return matching inaccessible constructors, SCL-22156 - line 118: // TODO decouple scala/scala-impl/src/org/jetbrains/plugins/scala/project/template/package.scala (4 lines): - line 18: // TODO: SCL-23312 - line 28: // TODO: SCL-23312 - line 38: // TODO: SCL-23312 - line 54: * TODO: Remove the label patching when the External System will use the concise and proper labels natively scala/compiler-integration/src/org/jetbrains/plugins/scala/compiler/charts/ui/DiagramsComponent.scala (4 lines): - line 38: // TODO Use a Timer to postpone the tooltip calculation - line 53: // TODO Use more effective search? - line 60: // TODO Show duration, number of files, etc. (maybe also labels) - line 61: // TODO Implement navigation to file / module scala/worksheet/src/org/jetbrains/plugins/scala/worksheet/ui/printers/WorksheetEditorPrinterPlain.scala (3 lines): - line 85: // TODO BULK_COUNT is unused - line 196: // TODO: there can be a lot of worksheet output, make these checks mor efficient to lower GC usage - line 289: // TODO: unify with REPL printer, reuse concepts scala/scala-impl/src/org/jetbrains/plugins/scala/lang/psi/ScImportsHolder.scala (3 lines): - line 552: val place: PsiElement = null // TODO: what is this parameter for? Add docs to the usage place - line 690: //TODO: do not use `apply` name here - line 740: // TODO: this is a dummy implementation copied from ScImportsHolder scala/compiler-shared/src/org/jetbrains/jps/incremental/scala/Client.scala (3 lines): - line 11: * TODO: add documentation with method contracts, currently there are too many methods with vague meaning - line 49: // TODO: extract to bundle carefully, DynamicBundle isn't available in JSP process - line 55: // TODO: support lazy message calculating: if debug/trace log level are not enabled, do not pass the messages scala/scala-impl/src/org/jetbrains/plugins/scala/editor/enterHandler/MultilineStringEnterHandler.scala (3 lines): - line 21: // TODO: add Scala prefix for all handlers for easy debug - line 76: document.commit(project) // TODO: AVOID COMMITTING DOCUMENTS ON TYPING! - line 197: document.commit(project) // TODO: AVOID COMMITTING DOCUMENTS ON TYPING! scala/scala-impl/src/org/jetbrains/plugins/scala/lang/psi/types/nonvalue/ScMethodType.scala (3 lines): - line 15: // TODO: we should also be able to express the absence of parameter clauses in method - line 32: //@TODO: infer ContextFunction when isImplicit and isInScala3File are true? - line 65: // TODO Actually infer method types scala/scala-impl/src/org/jetbrains/plugins/scala/lang/psi/implicits/ImplicitCollector.scala (3 lines): - line 91: //@TODO: inspect usages outside of ImplicitCollector and adapt to visibleImplicitsByLevel if needed. - line 267: //@TODO: should this branch also uses visibleNamesCandidatesByLevel? - line 517: //@TODO: apply context function to implicit args if type of `c` does not conform scala/scala-impl/src/org/jetbrains/plugins/scala/annotator/AnnotatorUtils.scala (3 lines): - line 23: // TODO move to org.jetbrains.plugins.scala.lang.psi.annotator - line 119: //TODO show parameter name - line 146: // TODO encapsulate scala/scala-impl/src/org/jetbrains/plugins/scala/lang/psi/impl/ScalaPsiElementFactory.scala (3 lines): - line 578: //TODO: add docs, what is `child` ??? - line 1327: _.`type`().getOrAny // FIXME this should probably be a None instead of Some(Any) - line 1353: // TODO method should be eliminated eventually scala/scala-impl/src/org/jetbrains/plugins/scala/statistics/SbtSettingsCollector.scala (3 lines): - line 19: //TODO: move it to sbt module or some "FUS" module - line 90: private val Group = new EventLogGroup("build.sbt.state", 1): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 115: ): @nowarn("cat=deprecation") // TODO: SCL-24479 scala/scala-impl/src/org/jetbrains/plugins/scala/lang/psi/ScalaPsiPresentationUtils.scala (3 lines): - line 9: // TODO 2: unify with org.jetbrains.plugins.scala.lang.psi.PresentationUtil - line 10: // TODO 4: unify with org.jetbrains.plugins.scala.lang.psi.ScalaPsiUtil - line 11: // TODO 5: unify with com.intellij.psi.util.PsiFormatUtil scala/scala-impl/src/org/jetbrains/plugins/scala/lang/folding/ScalaFoldingBuilder.scala (3 lines): - line 35: // TODO: do not use ASTNode.getText or PsiElement.getText - line 36: // TODO: extract shared string literals, like "{...}" - line 196: // TODO: maybe extract some proper base method should be extracted to ScDefinitionWithAssignment? scala/scala-impl/src/org/jetbrains/plugins/scala/caches/CacheInUserData.scala (3 lines): - line 7: // TODO cacheInUserData0[R] == cacheInUserDataN[Unit, R] - line 13: val holder = CachesUtil.getOrCreateCachedRef[E, R](dataHolder, key, id, name, () => dependency) // TODO (psiElement) - line 48: val holder = CachesUtil.getOrCreateCachedMap[E, T, R](dataHolder, key, id, name, () => dependency) // TODO (psiElement) scala/scala-impl/src/org/jetbrains/plugins/scala/highlighter/DefaultHighlighter.java (3 lines): - line 32: // TODO: can we inline all these ids? - line 161: //TODO: rename ANONIMOUS -> ANONYMOUS - line 171: // TODO Inherit Java's arrow attributes when Java will support them scala/integration/intellilang/src/org/jetbrains/plugins/scala/intelliLang/injection/ScalaLanguageInjector.scala (3 lines): - line 41: // TODO: rethink, add caching - line 66: //TODO: make this check earlier? when exactly? should we support explicit injection via intention or comment? - line 247: // FIXME: looks like this does not work for now, see SCL-15463 scala/scala-impl/src/org/jetbrains/plugins/scala/lang/psi/compiled/ScClassFileDecompiler.scala (3 lines): - line 68: //TODO: the `isTopLevelScalaClass` check seems to be causing SCL-24273 - line 115: //TODO: see comments inside, it seems like this logic is not relevant. - line 135: // TODO: this check seems to be incorrect scala/worksheet/src/org/jetbrains/plugins/scala/worksheet/ui/printers/WorksheetEditorPrinterRepl.scala (3 lines): - line 68: // FIXME: now all return boolean values are not processed anywhere and do not mean anything, remove or handle - line 69: // FIXME: handle exceptions in process line - line 70: // TODO: better to abstract away from "line string" to some kind of message / event, wrap the line sbt/sbt-impl/src/org/jetbrains/sbt/shell/SbtProcessManager.scala (3 lines): - line 82: // TODO add configurable plugins somewhere for users and via API; factor this stuff out - line 585: // processData.processHandler.getProcess.isAlive // TODO: I am not sure which is the best - line 677: //TODO #SCL-22878 "-Djdk.console=java.base" is needed due to modifications made to the System.console() after JDK 21, scala/scala-impl/src/org/jetbrains/plugins/scala/lang/psi/types/Context.scala (3 lines): - line 25: * TODO [[https://youtrack.jetbrains.com/issue/SCL-23892/Unify-context-parameters]] - line 67: * TODO Use dedicated Transparent and Opaque contexts for opaque type aliases in the future - line 86: * TODO Remove the default argument in the future sbt/sbt-impl/src/org/jetbrains/sbt/shell/SbtShellConsoleView.scala (3 lines): - line 36: //TODO: make it use the same shortcut as in Terminal (Cmd + K) - line 37: // TODO: same for Scala REPL - line 96: // TODO: remove this branch after a fix in the platform. scala/worksheet/src/org/jetbrains/plugins/scala/worksheet/ui/printers/WorksheetEditorPrinterFactory.scala (3 lines): - line 37: val BULK_COUNT = 15 // TODO: add a setting - line 99: //TODO: do this matching early, maybe even extract separate private method which would accept EditorImpl - line 179: // TODO: now we cache it only for unit tests but maybe we should also cache it like in getIncrementalUiFor scala/compiler-integration/src/org/jetbrains/plugins/scala/compiler/RemoteServerRunner.scala (3 lines): - line 28: // TODO: make it cancelable, if request is hanging we cant cancel it now. - line 30: // TODO: naming is a bit scaring, it suggests that it returns some new OS Process which connects to the server - line 78: // TODO: SCL-17265 do not stop the whole server! scala/scala-impl/src/org/jetbrains/plugins/scala/lang/resolve/processor/MostSpecificUtil.scala (3 lines): - line 279: //@TODO: similarly to the case above this should probably take implicit conversions into account - line 347: //@TODO: parameterClausesWithExtension.flatMap(_.effectiveParameters)? - line 443: dropExtensionClauses = true, //@TODO: should probably be srr.isExtensionCall scala/scala-impl/src/org/jetbrains/plugins/scala/lang/formatting/settings/ScalaCodeStyleSettings.java (3 lines): - line 221: // TODO: not all ScalaDoc settings are ignored if this setting is disabled - line 363: // TODO For some reason, SkipDefaultValuesSerializationFilters uses reflection to instantiate the class and needs an empty constructor. - line 485: //TODO: if decide to i18 be careful to separate view value from persisted value sbt/sbt-impl/src/org/jetbrains/sbt/language/completion/SbtMavenPackageSearchDependencyCompletionContributor.scala (3 lines): - line 172: // TODO: SCL-23246 Reimplement using new maven search api. - line 182: // TODO: SCL-23246 Reimplement using new maven search api. - line 240: // TODO: SCL-23246 Reimplement using new maven search api. scala/scala-impl/src/org/jetbrains/plugins/scala/editor/documentationProvider/MacroFinder.scala (3 lines): - line 14: * TODO: write a test for std lib like org.jetbrains.plugins.scala.projectHighlighting.ScalaLibraryHighlightingTest - line 82: val macroFinder = MacroFinderDummy // TODO: for now we do not support recursive macros, only 1 level - line 83: // TODO: ew scala/scala-impl/src/org/jetbrains/plugins/scala/project/settings/ScalaCompilerConfiguration.scala (3 lines): - line 22: //reportStatistic = true // TODO: will not be recorded due to state is Element - line 117: // TODO if we only set the incrementalityType option element when `incrementalityType` value is different from SBT - line 130: // TODO If `separateProdTestSources` is enabled by default, then this condition should changed to `separateProdTestSources` == `false` scala/scala-impl/src/org/jetbrains/plugins/scala/settings/ScalaProjectSettings.java (3 lines): - line 32: public class ScalaProjectSettings implements PersistentStateComponent { // TODO ScalaProjectSettings.State - line 264: // TODO Refresh editors - line 273: // TODO Refresh editors scala/scala-impl/src/org/jetbrains/plugins/scala/statistics/ScalaJsUsagesCollector.scala (3 lines): - line 16: private val Group = new EventLogGroup("scala.js", 1): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 18: private val DynamicResolveEvent = Group.registerEvent("dynamic.resolve"): @nowarn("cat=deprecation") // TODO: SCL-24479 - line 19: private val DynamicCompletionEvent = Group.registerEvent("dynamic.completion"): @nowarn("cat=deprecation") // TODO: SCL-24479 scala/compiler-jps/src/org/jetbrains/jps/incremental/scala/ScalaBuilder.scala (3 lines): - line 23: // TODO: use a proper naming. Scala builder of what? Strings? Code? Psi trees? - line 53: // TODO: ensure Scala Compile server is stopped in order it doesn't eventually - line 90: // TODO: ensure Scala Compile server is stopped in order it doesn't eventually scala/scala-impl/src/org/jetbrains/plugins/scala/patterns/ScalaElementPatternImpl.scala (3 lines): - line 20: //TODO: support infix expressions - line 48: //TODO: handle Scala 3 universal apply call - line 101: //TODO: support infix expressions scala/worksheet-repl-interface/impls/impl_3_0_0/src/org/jetbrains/jps/incremental/scala/local/worksheet/repl_interface/ILoopWrapper300Impl.scala (3 lines): - line 15: wrapperReporter: ILoopWrapperReporter, // TODO: use when ReplDriver accepts reporter - line 58: // TODO: should we cleanup something and how? - line 63: true // TODO: get the result from the driver when it implements this bsp-builtin/bsp/src/org/jetbrains/bsp/BspBuildLoopService.scala (3 lines): - line 21: * TODO IDEA platform already supports a save-triggered build-in-background mode. Investigate if we can replace this service. - line 96: // TODO only re-queue failed modules? requires information to be available in ProjectTaskResult - line 109: // TODO should allow all bsp-compiled types, depending on build server compatibility scala/scala-impl/resources/liveTemplates/scala.xml (3 lines): - line 3: TODO: review macros expresisons, looks like most of them do not work now - line 76: - line 95: