24 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*---------------------------------------------------------------------------------------------
 | |
|  *  Copyright (c) Microsoft Corporation. All rights reserved.
 | |
|  *  Licensed under the MIT License. See License.txt in the project root for license information.
 | |
|  *--------------------------------------------------------------------------------------------*/
 | |
| import { Range } from '../htmlLanguageTypes';
 | |
| export function findLinkedEditingRanges(document, position, htmlDocument) {
 | |
|     const offset = document.offsetAt(position);
 | |
|     const node = htmlDocument.findNodeAt(offset);
 | |
|     const tagLength = node.tag ? node.tag.length : 0;
 | |
|     if (!node.endTagStart) {
 | |
|         return null;
 | |
|     }
 | |
|     if (
 | |
|     // Within open tag, compute close tag
 | |
|     (node.start + '<'.length <= offset && offset <= node.start + '<'.length + tagLength) ||
 | |
|         // Within closing tag, compute open tag
 | |
|         node.endTagStart + '</'.length <= offset && offset <= node.endTagStart + '</'.length + tagLength) {
 | |
|         return [
 | |
|             Range.create(document.positionAt(node.start + '<'.length), document.positionAt(node.start + '<'.length + tagLength)),
 | |
|             Range.create(document.positionAt(node.endTagStart + '</'.length), document.positionAt(node.endTagStart + '</'.length + tagLength))
 | |
|         ];
 | |
|     }
 | |
|     return null;
 | |
| }
 | 
