@@ -0,0 +1,1931 @@
+package com.jetbrains.javascript.debugger;%0A%0Aimport com.intellij.openapi.editor.Document;%0Aimport com.intellij.openapi.extensions.ExtensionPointName;%0Aimport com.intellij.openapi.fileTypes.FileType;%0Aimport com.intellij.openapi.project.Project;%0Aimport com.intellij.openapi.util.TextRange;%0Aimport com.intellij.psi.PsiElement;%0Aimport com.intellij.xdebugger.breakpoints.XLineBreakpointType;%0Aimport com.intellij.xdebugger.evaluation.ExpressionInfo;%0Aimport org.jetbrains.annotations.NotNull;%0Aimport org.jetbrains.annotations.Nullable;%0A%0Apublic abstract class JavaScriptDebugAware %7B%0A  public static final ExtensionPointName%3CJavaScriptDebugAware%3E EP_NAME = ExtensionPointName.create(%22com.jetbrains.javaScriptDebugAware%22);%0A%0A  @Nullable%0A  public abstract FileType getFileType();%0A%0A  @Nullable%0A  public XLineBreakpointType%3C?%3E getBreakpointTypeClass(@NotNull Project project) %7B%0A    return null;%0A  %7D%0A%0A  /**%0A   * Return false if you language could be natively executed in the VM%0A   * You must not specify it and it doesn't matter if you use not own breakpoint type - (Kotlin or GWT use java breakpoint type, for example)%0A   */%0A  public boolean isOnlySourceMappedBreakpoints() %7B%0A    return true;%0A  %7D%0A%0A  @Nullable%0A  public TextRange getRangeForNamedElement(@NotNull PsiElement element, @Nullable PsiElement parent, int offset) %7B%0A    return null;%0A  %7D%0A%0A  @Nullable%0A  public ExpressionInfo getEvaluationInfo(@NotNull PsiElement element, @NotNull Document document, @NotNull Project project) %7B%0A    return null;%0A  %7D%0A%0A  @Nullable%0A  public static JavaScriptDebugAware find(@Nullable FileType fileType) %7B%0A    if (fileType == null) %7B%0A      return null;%0A    %7D%0A%0A    for (JavaScriptDebugAware debugAware : EP_NAME.getExtensions()) %7B%0A      if (fileType.equals(debugAware.getFileType())) %7B%0A        return debugAware;%0A      %7D%0A    %7D%0A    return null;%0A  %7D%0A%0A  public static boolean isBreakpointAware(@Nullable FileType fileType) %7B%0A    return find(fileType) != null;%0A  %7D%0A%7D

move JavaScriptDebugAware to community (required for kotlin&nashorn)