11// LICENSE : MIT
22"use strict" ;
33import { RuleHelper , IgnoreNodeManger } from "textlint-rule-helper" ;
4+ const StringSource = require ( "textlint-util-to-string" ) . default ;
45const rousseau = require ( "rousseau" ) ;
56const ObjectAssign = require ( "object-assign" ) ;
67const defaultOptions = {
@@ -72,7 +73,7 @@ export default function textlintRousseau(context, options = defaultOptions) {
7273 return "=> " + value ;
7374 } ) . join ( "\n" ) ;
7475 } ;
75- const reportError = ( node , result ) => {
76+ const reportError = ( node , source , result ) => {
7677 const level = result . level ;
7778 const type = result . type ;
7879 // if not contains showing options, ignore this result
@@ -82,9 +83,9 @@ export default function textlintRousseau(context, options = defaultOptions) {
8283 if ( ! isShowType ( type ) ) {
8384 return ;
8485 }
85- const index = result . index ;
86+ const index = source . originalIndexFromIndex ( result . index ) ;
8687 // if already ignored, should not report
87- if ( ignoreNodeManager . isIgnoredIndex ( index ) ) {
88+ if ( ignoreNodeManager . isIgnoredIndex ( index ) ) {
8889 return ;
8990 }
9091 const suggestions = createSuggest ( result . replacements ) ;
@@ -103,9 +104,11 @@ export default function textlintRousseau(context, options = defaultOptions) {
103104 // ignore if contain child node types
104105 ignoreNodeManager . ignoreChildrenByTypes ( node , ignoreInlineNodeTypes ) ;
105106 // check
106- const text = getSource ( node ) ;
107+
108+ const source = new StringSource ( node ) ;
109+ const text = source . toString ( ) ;
107110 const reportSourceError = ( results ) => {
108- reportError ( node , results ) ;
111+ reportError ( node , source , results ) ;
109112 } ;
110113 rousseau ( text , function ( err , results ) {
111114 if ( err ) {
0 commit comments