public void doInit() { PluginId debuggerPlugin = PluginManager.getPluginByClassName("jetbrains.mps.debug.api.DebugInfoManager"); if (debuggerPlugin == null) { return; } DebugInfoManager manager = DebugInfoManager.getInstance(); if (manager == null) { return; } { Mapper2<SNode, Project, ILocationBreakpoint> creator = new Mapper2<SNode, Project, ILocationBreakpoint>() { public ILocationBreakpoint value(SNode debuggableNode, Project project) { try { return Debuggers.getInstance() .getDebuggerByNameSafe("Java") .createBreakpoint(debuggableNode, "JAVA_LINE_BREAKPOINT", project); } catch (DebuggerNotPresentException e) { if (log.isWarnEnabled()) { log.warn("Exception while creating breakpoint for node" + debuggableNode, e); } return null; } } }; manager.addConceptBreakpointCreator( "jetbrains.mps.baseLanguage.structure.Statement", creator); } { Mapper2<SNode, Project, ILocationBreakpoint> creator = new Mapper2<SNode, Project, ILocationBreakpoint>() { public ILocationBreakpoint value(SNode debuggableNode, Project project) { try { return Debuggers.getInstance() .getDebuggerByNameSafe("Java") .createBreakpoint(debuggableNode, "JAVA_FIELD_BREAKPOINT", project); } catch (DebuggerNotPresentException e) { if (log.isWarnEnabled()) { log.warn("Exception while creating breakpoint for node" + debuggableNode, e); } return null; } } }; manager.addConceptBreakpointCreator( "jetbrains.mps.baseLanguage.structure.FieldDeclaration", creator); manager.addConceptBreakpointCreator( "jetbrains.mps.baseLanguage.structure.StaticFieldDeclaration", creator); } }