Преглед изворни кода

Dispatch linting error event when changed

Alasdair Smith пре 9 година
родитељ
комит
c42b08fcff
1 измењених фајлова са 13 додато и 1 уклоњено
  1. 13 1
      services/web/public/coffee/ide/editor/directives/aceEditor.coffee

+ 13 - 1
services/web/public/coffee/ide/editor/directives/aceEditor.coffee

@@ -35,7 +35,7 @@ define [
 			url = ace.config._moduleUrl(args...) + "?fingerprint=#{window.aceFingerprint}"
 			return url
 
-	App.directive "aceEditor", ($timeout, $compile, $rootScope, event_tracking, localStorage, $cacheFactory, labels, graphics, preamble) ->
+	App.directive "aceEditor", ($timeout, $compile, $rootScope, event_tracking, localStorage, $cacheFactory, labels, graphics, preamble, ide) ->
 		monkeyPatchSearch($rootScope, $compile)
 
 		return  {
@@ -374,6 +374,18 @@ define [
 					if scope.eventsBridge?
 						session.on "changeScrollTop", onScroll
 
+					hasLintingError = null
+					session.on('changeAnnotation', () ->
+						hasErrors = session
+							.getAnnotations()
+							.filter((annotation) -> annotation.type == 'error')
+							.length > 0
+
+						if (hasLintingError != hasErrors)
+							ide.$scope.$broadcast('ide:lintingError', hasErrors)
+							hasLintingError = hasErrors
+					)
+
 					setTimeout () ->
 						# Let any listeners init themselves
 						onScroll(editor.renderer.getScrollTop())