<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<title>jquery.slimscroll - programmatic scrolling</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<link href="libs/prettify/prettify.css" type="text/css" rel="stylesheet" />

<link href="style.css" type="text/css" rel="stylesheet" />

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

  <input type="button" id="scrollDown" value="scroll down by 50 px" />
  <input type="button" id="scrollUp" value="scroll up by 50 px" />

$('#testDiv').slimscroll({
  height: '250px'
});

$('#scrollDown').click(function(){
  $('#testDiv').slimScroll({ scrollBy: '50px' });
});

$('#scrollUp').click(function(){
  $('#testDiv').slimScroll({ scrollBy: '-50px' });
});

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam rhoncus, felis interdum condimentum consectetur, nisl libero elementum eros, vehicula congue lacus eros non diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris lorem, lacinia id tempus non, imperdiet et leo. Cras sit amet erat sit amet lacus egestas placerat. Aenean ultricies ultrices mauris ac congue. In vel tortor vel velit tristique tempus ac id nisi. Proin quis lorem velit. Nunc dui dui, blandit a ullamcorper vitae, congue fringilla lectus. Aliquam ultricies malesuada feugiat. Vestibulum placerat turpis et eros lobortis vel semper sapien pulvinar.

Pellentesque rhoncus aliquet porta. Sed vel magna eu turpis pharetra consequat ut vitae lectus. In molestie sollicitudin mi sit amet convallis. Aliquam erat volutpat. Nullam feugiat placerat ipsum eget malesuada. Nulla facilisis nunc non dolor vehicula pretium. Sed dui magna, sodales id pharetra non, ullamcorper eu sapien. Mauris ac consectetur leo. Mauris consequat, lectus ut bibendum pulvinar, leo magna feugiat enim, eu commodo lacus sem vel ante. Sed tempus metus eget leo mollis vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed pulvinar rhoncus quam, vel semper tellus viverra id. Nulla rutrum porttitor odio, a rutrum purus gravida non. Etiam ac purus augue, eget vestibulum purus. Aenean venenatis ullamcorper augue, non consequat elit tempor sed. Donec velit sapien, volutpat sed ultricies egestas, semper a ante. Fusce dapibus, quam eget auctor suscipit, nibh leo posuere ante, at auctor nisi lacus in sem. Morbi interdum consectetur euismod. Cras accumsan est lacus. Nulla eleifend, eros vel consequat commodo, arcu nunc malesuada nunc, quis sagittis felis sem ac turpis.

Nulla rhoncus elementum convallis. Mauris condimentum aliquet egestas. Ut iaculis nisi eget tellus accumsan venenatis. Maecenas imperdiet aliquam porta. Aenean ultrices dolor sed quam laoreet varius. Curabitur condimentum blandit erat, quis accumsan eros interdum vitae. Curabitur ligula arcu, sollicitudin vitae iaculis sed, blandit sit amet enim. Morbi ullamcorper, metus vel mollis tristique, arcu turpis malesuada nisi, at dignissim lorem odio a orci. Proin ultrices, ipsum ut vestibulum interdum, libero felis auctor mi, vitae convallis nisl justo ac tellus. Integer nec lacinia turpis. Etiam massa nisl, rhoncus quis rutrum in, pretium eu leo. Proin a velit ut nulla laoreet vestibulum. Curabitur eu elit vitae felis auctor tincidunt. Curabitur tincidunt, metus sed sollicitudin cursus, quam elit commodo erat, ut tempor erat sapien vitae velit. Morbi nec viverra erat.

Nullam scelerisque facilisis pretium. Vivamus lectus leo, commodo ac sagittis ac, dictum a mi. Donec quis massa ut libero malesuada commodo in et risus. Fusce nunc dolor, aliquet vel rutrum in, molestie sit amet massa. Aliquam suscipit, justo a commodo condimentum, enim sapien fringilla ante, sed lobortis orci lectus in ante. Donec vel interdum est. Donec placerat cursus lacus, eu ultricies nisl tincidunt a. Fusce libero risus, sagittis eleifend iaculis aliquet, condimentum vitae diam. Suspendisse potenti. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Proin leo purus, sodales a venenatis luctus, faucibus ac enim. Sed id metus ac sem lobortis pretium. Mauris faucibus tempor scelerisque. Nunc vulputate interdum tortor, non tincidunt dui condimentum eget. Aenean in porttitor velit. Nam accumsan rhoncus risus id consectetur.

  <input type="button" id="scrollDownTo" value="Scroll to 300px from the top" />
  <input type="button" id="scrollUpTo" value="Scroll to 20px from the top" />

$('#testDiv2').slimscroll({
  height: '250px'
});

$('#scrollDownTo').click(function(){
  $('#testDiv2').slimScroll({ scrollTo: '300px' });
});

$('#scrollUpTo').click(function(){
  $('#testDiv2').slimScroll({ scrollTo: '20px' });
});

{'repo_name': 'DFIRKuiper/Kuiper', 'stars': '160', 'repo_language': 'JavaScript', 'file_name': 'README.md', 'mime_type': 'text/plain', 'hash': 2752000516611469878, 'source_dataset': 'data'}


import 'package:flutter_starter_kit/utility/db/DatabaseHelper.dart';
import 'package:flutter_starter_kit/utility/log/Log.dart';
import 'package:sqflite/sqflite.dart';

class AppDatabaseMigrationListener implements DatabaseMigrationListener{

  static const int VERSION_1_0_0 = 1;

  @override
  void onCreate(Database db, int version) async {

      Log.info('onCreate version : $version');
      await _createDatabase(db, version);
  }

  @override
  void onUpgrade(Database db, int oldVersion, int newVersion) {
      Log.info('oldVersion : $oldVersion');
      Log.info('newVersion : $newVersion');
  }

  Future<void> _createDatabase(Database db, int version) async{
    if(VERSION_1_0_0 == version){
      await db.execute('CREATE TABLE AppContent (trackId INTEGER PRIMARY KEY, _order INTEGER, isFeatureApp INTEGER, '
          'isFreeApp INTEGER, trackName TEXT, description TEXT, meta TEXT)');
    }
  }
}

{'repo_name': 'KingWu/flutter_starter_kit', 'stars': '486', 'repo_language': 'Dart', 'file_name': 'widget_test.dart', 'mime_type': 'text/x-c', 'hash': -2033853214635174019, 'source_dataset': 'data'}


// Copyright (c) 2018, Peter Ohler, All rights reserved.

#ifndef AGOO_GRAPHQL_H
#define AGOO_GRAPHQL_H

#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>

#include "err.h"
#include "gqlcobj.h"
#include "gqleval.h"
#include "text.h"

typedef enum {
    GQL_UNDEF		= (int8_t)0, // not defined yet
    GQL_SCHEMA		= (int8_t)1,
    GQL_OBJECT		= (int8_t)2,
    GQL_FRAG		= (int8_t)3,
    GQL_INPUT		= (int8_t)4,
    GQL_UNION		= (int8_t)5,
    GQL_INTERFACE	= (int8_t)6,
    GQL_ENUM		= (int8_t)7,
    GQL_SCALAR		= (int8_t)8,
    GQL_LIST		= (int8_t)9,
    GQL_NON_NULL	= (int8_t)10,
} gqlKind;

typedef enum {
    GQL_SCALAR_UNDEF	= (int8_t)0, // not defined yet
    GQL_SCALAR_NULL	= (int8_t)1,
    GQL_SCALAR_BOOL	= (int8_t)2,
    GQL_SCALAR_INT	= (int8_t)3,
    GQL_SCALAR_I64	= (int8_t)4,
    GQL_SCALAR_FLOAT	= (int8_t)5,
    GQL_SCALAR_STRING	= (int8_t)6,
    GQL_SCALAR_TOKEN	= (int8_t)7,
    GQL_SCALAR_VAR	= (int8_t)8,
    GQL_SCALAR_TIME	= (int8_t)9,
    GQL_SCALAR_UUID	= (int8_t)10,
    GQL_SCALAR_ID	= (int8_t)11,
    GQL_SCALAR_LIST	= (int8_t)12,
    GQL_SCALAR_OBJECT	= (int8_t)13,
} gqlScalarKind;

typedef enum {
    GQL_QUERY		= (int8_t)'Q',
    GQL_MUTATION	= (int8_t)'M',
    GQL_SUBSCRIPTION	= (int8_t)'S',
} gqlOpKind;

struct _agooCon;
struct _agooReq;
struct _gqlDirUse;
struct _gqlField;
struct _gqlLink;
struct _gqlType;
struct _gqlValue;

typedef struct _gqlQuery {
    struct _gqlQuery	*next;
    struct _gqlValue	*result;
    struct _gqlDirUse	*dir;
    // TBD data about a query, mutation, or subscription
} *gqlQuery;

typedef struct _gqlStrLink {
    struct _gqlStrLink	*next;
    char		*str;
} *gqlStrLink;

typedef struct _gqlTypeLink {
    struct _gqlTypeLink	*next;
    struct _gqlType	*type;
} *gqlTypeLink;

typedef struct _gqlEnumVal {
    struct _gqlEnumVal	*next;
    const char		*value;
    const char		*desc;
    struct _gqlDirUse	*dir;
} *gqlEnumVal;

typedef struct _gqlArg {
    struct _gqlArg	*next;
    const char		*name;
    const char		*desc;
    struct _gqlType	*type;
    struct _gqlValue	*default_value;
    struct _gqlDirUse	*dir;
    bool		required;
} *gqlArg;

typedef struct _gqlField {
    struct _gqlField	*next;
    const char		*name;
    struct _gqlType	*type; // return type
    const char		*desc;
    gqlArg		args;
    struct _gqlDirUse	*dir;
    struct _gqlValue	*default_value;
    bool		required;
} *gqlField;

typedef struct _gqlDir {
    struct _gqlDir	*next;
    const char		*name;
    const char		*desc;
    gqlArg		args;
    gqlStrLink		locs; // location names
    bool		defined;
    bool		core;
} *gqlDir;

typedef struct _gqlDirUse {
    struct _gqlDirUse	*next;
    gqlDir		dir;
    struct _gqlLink	*args;
} *gqlDirUse;

typedef struct _gqlType {
    const char		*name;
    const char		*desc;
    gqlDirUse		dir;
    gqlKind		kind;
    gqlScalarKind	scalar_kind;
    bool		core;
    union {
	struct { // Schema (just fields), Objects and Interfaces
	    gqlField		fields;
	    gqlTypeLink		interfaces;	// Types
	};
	gqlTypeLink		types;		// Union
	gqlEnumVal		choices;	// Enums
	gqlArg			args;		// InputObject
	struct {				// scalar
	    agooText		(*to_sdl)(agooText text, struct _gqlValue *value, int indent, int depth);
	    agooText		(*to_json)(agooText text, struct _gqlValue *value, int indent, int depth);
	    void		(*destroy)(struct _gqlValue *value);
	};
	struct { // List types
	    struct _gqlType	*base;
	    bool		not_empty;
	};
    };
} *gqlType;

// Execution Definition types
struct _gqlFrag;

typedef struct _gqlVar {
    struct _gqlVar	*next;
    const char		*name;
    gqlType		type;
    struct _gqlValue	*value;
} *gqlVar;

typedef struct _gqlSelArg {
    struct _gqlSelArg	*next;
    const char		*name;
    gqlVar		var;
    struct _gqlValue	*value;
} *gqlSelArg;

typedef struct _gqlSel {
    struct _gqlSel	*next;
    const char		*alias;
    const char		*name;
    gqlType		type; // set with validation
    gqlDirUse		dir;
    gqlSelArg		args;
    struct _gqlSel	*sels;
    const char		*frag;
    struct _gqlFrag	*inline_frag;
} *gqlSel;

typedef struct _gqlOp {
    struct _gqlOp	*next;
    const char		*name;
    gqlVar		vars;
    gqlDirUse		dir;
    gqlSel		sels;
    gqlOpKind		kind;
} *gqlOp;

typedef struct _gqlFrag {
    struct _gqlFrag	*next;
    const char		*name;
    gqlDirUse		dir;
    gqlType		on;
    gqlSel		sels;
} *gqlFrag;

typedef struct _gqlFuncs {
    gqlResolveFunc	resolve; // TBD change
    gqlTypeFunc		type;
} *gqlFuncs;

typedef struct _gqlDoc {
    gqlOp		ops;
    gqlVar		vars;
    gqlFrag		frags;
    gqlOp		op; // the op to execute
    struct _gqlFuncs	funcs;
} *gqlDoc;

extern int	gql_init(agooErr err);
extern void	gql_destroy(); // clear out all

extern gqlType	gql_schema_create(agooErr err, const char *desc, size_t dlen);
extern gqlType	gql_type_create(agooErr err, const char *name, const char *desc, size_t dlen, gqlTypeLink interfaces);
extern gqlType	gql_assure_type(agooErr err, const char *name);
extern int	gql_type_directive_use(agooErr err, gqlType type, gqlDirUse use);
extern bool	gql_type_has_directive_use(gqlType type, const char *dir);

extern gqlType	gql_input_create(agooErr err, const char *name, const char *desc, size_t dlen);
extern gqlType	gql_interface_create(agooErr err, const char *name, const char *desc, size_t dlen);

extern gqlField	gql_type_field(agooErr		err,
			       gqlType		type,
			       const char	*name,
			       gqlType		return_type,
			       struct _gqlValue	*default_value,
			       const char	*desc,
			       size_t		dlen,
			       bool 		required);

extern gqlArg	gql_field_arg(agooErr 		err,
			      gqlField 		field,
			      const char 	*name,
			      gqlType	 	type,
			      const char 	*desc,
			      size_t		dlen,
			      struct _gqlValue	*def_value,
			      bool 		required);

extern gqlArg	gql_input_arg(agooErr		err,
			      gqlType		input,
			      const char	*name,
			      gqlType		type,
			      const char	*desc,
			      size_t		dlen,
			      struct _gqlValue	*def_value,
			      bool		required);

extern gqlType		gql_scalar_create(agooErr err, const char *name, const char *desc, size_t dlen);

extern gqlDir		gql_directive_create(agooErr err, const char *name, const char *desc, size_t dlen);
extern gqlArg		gql_dir_arg(agooErr 		err,
				    gqlDir 		dir,
				    const char 		*name,
				    gqlType 		type,
				    const char	 	*desc,
				    size_t		dlen,
				    struct _gqlValue	*def_value,
				    bool 		required);
extern int		gql_directive_on(agooErr err, gqlDir d, const char *on, int len);
extern gqlDir		gql_directive_get(const char *name);

extern gqlDirUse	gql_dir_use_create(agooErr err, const char *name);
extern int		gql_dir_use_arg(agooErr err, gqlDirUse use, const char *key, struct _gqlValue *value);

extern gqlType		gql_union_create(agooErr err, const char *name, const char *desc, size_t dlen);
extern int		gql_union_add(agooErr err, gqlType type, gqlType member);

extern gqlType		gql_enum_create(agooErr err, const char *name, const char *desc, size_t dlen);
extern gqlEnumVal	gql_enum_append(agooErr err, gqlType type, const char *value, size_t len, const char *desc, size_t dlen);

extern gqlType		gql_assure_list(agooErr err, gqlType base, bool not_empty);

extern int		gql_type_set(agooErr err, gqlType type);
extern gqlType		gql_type_get(const char *name);
extern void		gql_type_destroy(gqlType type);
extern void		gql_type_iterate(void (*fun)(gqlType type, void *ctx), void *ctx);

extern agooText		gql_type_sdl(agooText text, gqlType type, bool comments);
extern agooText		gql_directive_sdl(agooText text, gqlDir dir, bool comments);
extern agooText		gql_schema_sdl(agooText text, bool with_desc, bool all);

extern agooText		gql_object_to_graphql(agooText text, struct _gqlValue *value, int indent, int depth);
extern agooText		gql_union_to_text(agooText text, struct _gqlValue *value, int indent, int depth);
extern agooText		gql_enum_to_text(agooText text, struct _gqlValue *value, int indent, int depth);

extern gqlDoc		gql_doc_create(agooErr err);
extern void		gql_doc_destroy(gqlDoc doc);

extern gqlOp		gql_op_create(agooErr err, const char *name, gqlOpKind kind);
extern gqlFrag		gql_fragment_create(agooErr err, const char *name, gqlType on);
extern agooText		gql_doc_sdl(gqlDoc doc, agooText text);

extern void		gql_dump_hook(struct _agooReq *req);
extern void		gql_eval_get_hook(struct _agooReq *req);
extern void		gql_eval_post_hook(struct _agooReq *req);

extern int		gql_validate(agooErr err);

extern gqlField		gql_type_get_field(gqlType type, const char *field);

extern gqlDir		gql_directives; // linked list

#endif // AGOO_GRAPHQL_H

{'repo_name': 'ohler55/agoo-c', 'stars': '121', 'repo_language': 'C', 'file_name': 'Makefile', 'mime_type': 'text/x-makefile', 'hash': -8126820832726135173, 'source_dataset': 'data'}


/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

// This test checks that changing a tag for a bookmark with multiple tags
// notifies OnItemChanged("tags") only once, and not once per tag.

function run_test() {
  do_test_pending();

  let tags = ["a", "b", "c"];
  let uri = NetUtil.newURI("http://1.moz.org/");

  let id = PlacesUtils.bookmarks.insertBookmark(
    PlacesUtils.unfiledBookmarksFolderId, uri,
    PlacesUtils.bookmarks.DEFAULT_INDEX, "Bookmark 1"
  );
  PlacesUtils.tagging.tagURI(uri, tags);

  let bookmarksObserver = {
    QueryInterface: XPCOMUtils.generateQI([
      Ci.nsINavBookmarkObserver
    ]),

    _changedCount: 0,
    onItemChanged: function(aItemId, aProperty, aIsAnnotationProperty, aValue,
                            aLastModified, aItemType) {
      if (aProperty == "tags") {
        do_check_eq(aItemId, id);
        this._changedCount++;
      }
    },

    onItemRemoved: function(aItemId, aParentId, aIndex, aItemType) {
      if (aItemId == id) {
        PlacesUtils.bookmarks.removeObserver(this);
        do_check_eq(this._changedCount, 2);
        do_test_finished();
      }
    },

    onItemAdded: function() {},
    onBeginUpdateBatch: function() {},
    onEndUpdateBatch: function() {},
    onItemVisited: function() {},
    onItemMoved: function() {},
  };
  PlacesUtils.bookmarks.addObserver(bookmarksObserver, false);

  PlacesUtils.tagging.tagURI(uri, ["d"]);
  PlacesUtils.tagging.tagURI(uri, ["e"]);
  PlacesUtils.bookmarks.removeItem(id);
}

{'repo_name': 'mozilla/positron', 'stars': '514', 'repo_language': 'None', 'file_name': 'moz.build', 'mime_type': 'text/plain', 'hash': -5799277709060448977, 'source_dataset': 'data'}


/* default set of material colors based on current window-accent-color */

html
{
  font:system;
  var(normal)   : window-accent-color;
  var(lighten5) : morph(window-accent-color, lighten:60%);
  var(lighten4) : morph(window-accent-color, lighten:53%);
  var(lighten3) : morph(window-accent-color, lighten:41%);
  var(lighten2) : morph(window-accent-color, lighten:30%);
  var(lighten1) : morph(window-accent-color, lighten:12%);
  var(darken1)  : morph(window-accent-color, darken:3%);
  var(darken2)  : morph(window-accent-color, darken:6%);
  var(darken3)  : morph(window-accent-color, darken:9%);
  var(darken4)  : morph(window-accent-color, darken:12%);
  var(ascent1)  : morph(window-accent-color, rotate:-20deg);
  var(ascent2)  : morph(window-accent-color, rotate:-10deg);
  var(ascent3)  : morph(window-accent-color, rotate:10deg);
  var(ascent4)  : morph(window-accent-color, rotate:20deg);
}

{'repo_name': 'c-smile/sciter-sdk', 'stars': '1132', 'repo_language': 'Pawn', 'file_name': 'contents.xcworkspacedata', 'mime_type': 'text/xml', 'hash': 4884790736708845419, 'source_dataset': 'data'}


/* Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.flowable.eventsubscription.api;

import java.util.Date;

/**
 * Represent an event subscription for a process definition or a process instance.
 *
 * @author Tijs Rademakers
 */
public interface EventSubscription {

    /**
     * The unique identifier of the execution.
     */
    String getId();

    /**
     * Returns the type of subscription, for example signal or message.
     */
    String getEventType();

    /**
     * The event name for the signal or message event.
     */
    String getEventName();

    /**
     * Gets the id of the execution for this event subscription.
     */
    String getExecutionId();

    /**
     * Gets the activity id of the BPMN definition where this event subscription is defined.
     */
    String getActivityId();

    /**
     * Id of the process instance for this event subscription.
     */
    String getProcessInstanceId();

    /**
     * Id of the process definition for this event subscription.
     */
    String getProcessDefinitionId();

    /**
     * Id of the sub scope for this event subscription.
     */
    String getSubScopeId();

    /**
     * Id of the scope for this event subscription.
     */
    String getScopeId();

    /**
     * Id of the scope definition for this event subscription.
     */
    String getScopeDefinitionId();

    /**
     * Scope type for this event subscription.
     */
    String getScopeType();

    /**
     * Returns the configuration with additional info about this event subscription.
     */
    String getConfiguration();

    /**
     * Gets the date/time when this event subscription was created.
     */
    Date getCreated();

    /**
     * The tenant identifier of this process instance
     */
    String getTenantId();
}

{'repo_name': 'flowable/flowable-engine', 'stars': '3156', 'repo_language': 'Java', 'file_name': 'historyasync.flowable.cmmn.cfg.xml', 'mime_type': 'text/xml', 'hash': -7831610586851000836, 'source_dataset': 'data'}


<?xml version="1.0" encoding="UTF-8"?>
<DARoots Version="1" Minor="30">
  <FileSet Name="sim_1" Type="SimulationSrcs" RelSrcDir="$PSRCDIR/sim_1">
    <Config>
      <Option Name="DesignMode" Val="RTL"/>
      <Option Name="TopModule" Val="fpgaminer_top"/>
      <Option Name="TopLib" Val="work"/>
      <Option Name="TopRTLFile" Val="$PPRDIR/fpgaminer_top.v"/>
      <Option Name="TopAutoSet" Val="TRUE"/>
      <Option Name="SrcSet" Val="sources_1"/>
    </Config>
  </FileSet>
</DARoots>

{'repo_name': 'progranism/Open-Source-FPGA-Bitcoin-Miner', 'stars': '918', 'repo_language': 'VHDL', 'file_name': 'hashing_pll.v', 'mime_type': 'text/plain', 'hash': 8243035990377669887, 'source_dataset': 'data'}


<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
    <metadata>
        <id>@project@</id>
        <version>@build.number@</version>
        <title>@project@</title>
        <authors>Michael Christensen</authors>
        <owners>phantomtypist</owners>
        <licenseUrl>https://github.com/mchidk/BinaryRage</licenseUrl>
        <projectUrl>https://github.com/mchidk/BinaryRage</projectUrl>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>BinaryRage - the ultra fast .NET key/value store.

- BinaryRage is designed to be a lightweight ultra fast key/value store for .NET with no dependencies
- It's production-ready - already in several large production-environments
- Supports complex objects out of the box (and lists of objects)
- 100% FREE and open (no paid pro version or anything lame like that)
- No configuration, no strange driver/connector, no server, no setup - simply reference the dll and start using it in less than a minute.
- Created it because I think there is a huge need for a very simple key/value store
- If you hate writing boilerplate code - you will love BinaryRage</description>
        <summary>BinaryRage - the ultra fast .NET key/value store.</summary>
        <releaseNotes />
        <copyright>2013, Michael Christensen</copyright>
        <language>en-US</language>
        <tags>NOSQL cache KeyValueStore ObjectSerialization ObjectSerializer database fast</tags>
    </metadata>
    <files>
        <file src="BinaryRage.dll" target="lib\net40\BinaryRage.dll" />
        <file src="BinaryRage.pdb" target="lib\net40\BinaryRage.pdb" />
    </files>
</package>

{'repo_name': 'mchidk/BinaryRage', 'stars': '214', 'repo_language': 'C#', 'file_name': 'ConvertHelper.cs', 'mime_type': 'text/plain', 'hash': 4308672412317917809, 'source_dataset': 'data'}


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 0}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 11500000, guid: 9d1de2691495b304e9843ac3335b626d, type: 3}
  m_Name: uniform_janitor
  m_EditorClassIdentifier:
  Variance:
  - Frames:
    - sprite: {fileID: 21300000, guid: fbfcee5e769362f4a93006f5228426e7, type: 3}
      secondDelay: 0
  - Frames:
    - sprite: {fileID: 21300002, guid: fbfcee5e769362f4a93006f5228426e7, type: 3}
      secondDelay: 0
  - Frames:
    - sprite: {fileID: 21300004, guid: fbfcee5e769362f4a93006f5228426e7, type: 3}
      secondDelay: 0
  - Frames:
    - sprite: {fileID: 21300006, guid: fbfcee5e769362f4a93006f5228426e7, type: 3}
      secondDelay: 0
  IsPalette: 0
  setID: 21573

{'repo_name': 'unitystation/unitystation', 'stars': '507', 'repo_language': 'C#', 'file_name': 'misc.meta', 'mime_type': 'text/plain', 'hash': 4132840126271273771, 'source_dataset': 'data'}


//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.7
// See http://java.sun.com/xml/jaxb
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2014.08.06 at 11:57:31 AM CEST
//

package com.sun.research.ws.wadl;

import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAnyElement;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElements;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

import org.w3c.dom.Element;

/**
 *
Java class for anonymous complex type.
 *
 *
The following schema fragment specifies the expected content contained within this class.
 *
 *

 * <complexType>
 *   <complexContent>
 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       <sequence>
 *         <element ref="{http://wadl.dev.java.net/2009/02}doc" maxOccurs="unbounded" minOccurs="0"/>
 *         <element ref="{http://wadl.dev.java.net/2009/02}grammars" minOccurs="0"/>
 *         <element ref="{http://wadl.dev.java.net/2009/02}resources" maxOccurs="unbounded" minOccurs="0"/>
 *         <choice maxOccurs="unbounded" minOccurs="0">
 *           <element ref="{http://wadl.dev.java.net/2009/02}resource_type"/>
 *           <element ref="{http://wadl.dev.java.net/2009/02}method"/>
 *           <element ref="{http://wadl.dev.java.net/2009/02}representation"/>
 *           <element ref="{http://wadl.dev.java.net/2009/02}param"/>
 *         </choice>
 *         <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
 *       </sequence>
 *     </restriction>
 *   </complexContent>
 * </complexType>
 *

 *
 *
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
        "doc",
        "grammars",
        "resources",
        "resourceTypeOrMethodOrRepresentation",
        "any"
})
@XmlRootElement(name = "application")
public class Application {

    protected List<Doc> doc;
    protected Grammars grammars;
    protected List<Resources> resources;
    @XmlElements({
            @XmlElement(name = "resource_type", type = ResourceType.class),
            @XmlElement(name = "method", type = Method.class),
            @XmlElement(name = "representation", type = Representation.class),
            @XmlElement(name = "param", type = Param.class)
    })
    protected List<Object> resourceTypeOrMethodOrRepresentation;
    @XmlAnyElement(lax = true)
    protected List<Object> any;

    /**
     * Gets the value of the doc property.
     *
     *

     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a set method for the doc property.
     *
     *

     * For example, to add a new item, do as follows:
     *

     *    getDoc().add(newItem);
     *

     *
     *
     *

     * Objects of the following type(s) are allowed in the list
     * {@link Doc }
     *
     *
     */
    public List<Doc> getDoc() {
        if (doc == null) {
            doc = new ArrayList<>();
        }
        return this.doc;
    }

    /**
     * Gets the value of the grammars property.
     *
     * @return
     *     possible object is
     *     {@link Grammars }
     *
     */
    public Grammars getGrammars() {
        return grammars;
    }

    /**
     * Sets the value of the grammars property.
     *
     * @param value
     *     allowed object is
     *     {@link Grammars }
     *
     */
    public void setGrammars(Grammars value) {
        this.grammars = value;
    }

    /**
     * Gets the value of the resources property.
     *
     *

     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a set method for the resources property.
     *
     *

     * For example, to add a new item, do as follows:
     *

     *    getResources().add(newItem);
     *

     *
     *
     *

     * Objects of the following type(s) are allowed in the list
     * {@link Resources }
     *
     *
     */
    public List<Resources> getResources() {
        if (resources == null) {
            resources = new ArrayList<>();
        }
        return this.resources;
    }

    /**
     * Gets the value of the resourceTypeOrMethodOrRepresentation property.
     *
     *

     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a set method for the resourceTypeOrMethodOrRepresentation property.
     *
     *

     * For example, to add a new item, do as follows:
     *

     *    getResourceTypeOrMethodOrRepresentation().add(newItem);
     *

     *
     *
     *

     * Objects of the following type(s) are allowed in the list
     * {@link ResourceType }
     * {@link Method }
     * {@link Representation }
     * {@link Param }
     *
     *
     */
    public List<Object> getResourceTypeOrMethodOrRepresentation() {
        if (resourceTypeOrMethodOrRepresentation == null) {
            resourceTypeOrMethodOrRepresentation = new ArrayList<>();
        }
        return this.resourceTypeOrMethodOrRepresentation;
    }

    /**
     * Gets the value of the any property.
     *
     *

     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a set method for the any property.
     *
     *

     * For example, to add a new item, do as follows:
     *

     *    getAny().add(newItem);
     *

     *
     *
     *

     * Objects of the following type(s) are allowed in the list
     * {@link Object }
     * {@link Element }
     *
     *
     */
    public List<Object> getAny() {
        if (any == null) {
            any = new ArrayList<>();
        }
        return this.any;
    }

}

{'repo_name': 'eclipse-ee4j/jersey', 'stars': '422', 'repo_language': 'Java', 'file_name': 'FormProviderTest.java', 'mime_type': 'text/x-java', 'hash': -7569520604341653727, 'source_dataset': 'data'}


通过OneBox体验Tera
=====

为了最快速度体验Tera，Tera提供一个OneBox方式布署，利用本地存储代替DFS，利用本地文件模拟ZK，单机多进程运行master、tabletnode。此模式下可正常使用Tera的全部功能，包括（不限于）：
* 表格新建(create)、schema修改(update)、删除(drop)、卸载(disable)、加载(enable)等
* 数据写入(put)、删除(delete)、随机读(get)、顺序读(scan)等
* 数据分片分裂(split)、合并(merge)、负载均衡(move)等

## 准备工作
1. 完成Tera的编译，请参考：https://github.com/baidu/tera/wiki/Build-Manual
2. 将编译生成的tera_master, tabletserver, teracli三个二进制文件放入example/onebox/bin
3. 如有需要，通过修改example/onebox/bin/config中的选项配置tabletnode个数
4. 进入example/onebox/bin/目录

## 启动、停止Tera
* 执行./launch_tera.sh即可启动Tera
```
[tera@localhost bin]$ sh launch_tera.sh
launching tabletnode 1...
launching tabletnode 2...
launching tabletnode 3...
launching master...
```
* 执行./kill_tera.sh即可停止Tera

## 体验开始！
如果启动正常，尝试查看集群基本信息: `./teracli show`
```
[tera@localhost bin]$ ./teracli show
     tablename   status        size   lg_size  tablet  notready
-----------------------------------------------------------------
  0  meta_table  kTableEnable  4.01K  4.01K    1       0
  1  stat_table  kTableEnable  4K     4K       1       0
  -  total       -             8.01K  -        2       0
```

查看更详细的表格信息：`./teracli showx`
```
[tera@localhost bin]$ ./teracli showx
     tablename   status        size    lg_size  tablet  notready  lread  read  rmax  rspeed  write  wmax  wspeed  scan  smax  sspeed
--------------------------------------------------------------------------------------------------------------------------------------
  0  meta_table  kTableEnable  4.01K   4.01K    1       0         0      0     0     0B/s    0      0     0B/s    0     0     0B/s
  1  stat_table  kTableEnable  28.06K  28.06K   1       0         0      0     0     0B/s    0      0     0B/s    0     0     0B/s
  -  total       -             32.07K  -        2       0         0      0     -     0B/s    0      -     0B/s    0     -     0B/s
```

查看当前有哪些存活的tabletnode: `./teracli showts`
```
[tera@localhost bin]$ ./teracli showts
     address         status  workload  tablet  load  busy
-----------------------------------------------------------
  0  127.0.0.1:7701  kReady  4.01K     1       0     0
  1  127.0.0.1:7702  kReady  32.06K    1       0     0
  2  127.0.0.1:7703  kReady  0         0       0     0
```

查看更详细的tabletnode信息：`./teracli showtsx`
```
[tera@localhost bin]$ ./teracli showtsx
     address         status  size    num  lread  r  rspd  w  wspd  s  sspd  rdly  rp  wp  sp  ld  bs  mem     cpu  net_tx  net_rx  dfs_r  dfs_w
-------------------------------------------------------------------------------------------------------------------------------------------------
  0  127.0.0.1:7701  kReady  4.01K   1    0      0  0B    0  0B    0  0B    0ms   0   0   0   0   0   12.10M  0    12.11K  5.57K   0      0
  1  127.0.0.1:7702  kReady  32.06K  1    0      0  0B    0  0B    0  0B    0ms   0   0   0   0   0   11.83M  0    12.11K  5.57K   0      0
  2  127.0.0.1:7703  kReady  0       0    0      0  0B    0  0B    0  0B    0ms   0   0   0   0   0   11.08M  0    12.11K  5.57K   0      0
```

新建一个表格hello，包含两个列族cf0和cf1: `./teracli create 'hello{cf0,cf1}'`
```
[tera@localhost bin]$ ./teracli create 'hello{cf0,cf1}'
  hello <splitsize=512,mergesize=0> {
      lg0 <storage=disk> {
          cf0,
          cf1,
      },
  }
[tera@localhost bin]$ ./teracli show
     tablename   status        size    lg_size  tablet  notready
------------------------------------------------------------------
  0  hello       kTableEnable  4.01K   4.01K    1       0
  1  meta_table  kTableEnable  4.01K   4.01K    1       0
  2  stat_table  kTableEnable  44.12K  44.12K   1       0
  -  total       -             52.14K  -        3       0
```

写入一条数据(列族是cf0，列是column1): `./teracli put hello row1 cf0:column1 value1`

随机读出刚写入的数据： `./teracli get hello row1`
```
[tera@localhost bin]$ ./teracli get hello row1
row1:cf0:column1:1477367889042685:value1
```

多写一些数据：
```
[tera@localhost bin]$ ./teracli put hello row2 cf1:column0 value2
[tera@localhost bin]$ ./teracli put hello row2 cf1:column1 value3
[tera@localhost bin]$ ./teracli put hello row0 cf1:column1 value0
```

顺序读出整个表格的数据： `./teracli scan hello "" ""`
```
[tera@localhost bin]$ ./teracli scan hello "" ""
row0:cf1:column1:1477368174895134:value0
row1:cf0:column1:1477367889042685:value1
row2:cf1:column0:1477368164358077:value2
row2:cf1:column1:1477368169176632:value3
```

卸载表格： `./teracli disable hello`
```
[tera@localhost bin]$ ./teracli disable hello
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 100%  1.000  1.000/s  00:00:01
[tera@localhost bin]$ ./teracli show
     tablename   status         size    lg_size  tablet  notready
-------------------------------------------------------------------
  0  hello       kTableDisable  4.01K   4.01K    1       0
  1  meta_table  kTableEnable   4.01K   4.01K    1       0
  2  stat_table  kTableEnable   44.12K  44.12K   1       0
  -  total       -              52.14K  -        3       0
```

删除表格： `./teracli drop hello`
```
[tera@localhost bin]$ ./teracli drop hello
[tera@localhost bin]$ ./teracli show
     tablename   status        size    lg_size  tablet  notready
------------------------------------------------------------------
  0  meta_table  kTableEnable  4.01K   4.01K    1       0
  1  stat_table  kTableEnable  44.12K  44.12K   1       0
  -  total       -             48.13K  -        2       0
```

## 写在最后
Tera onebox模式可以体验几乎所有的功能特性，希望通过上面的介绍可以让大家对Tera有一个初步的认识。

{'repo_name': 'baidu/tera', 'stars': '1774', 'repo_language': 'C++', 'file_name': 'tera_intro.md', 'mime_type': 'text/plain', 'hash': 8667570376632788783, 'source_dataset': 'data'}


/*
Copyright 2017 The Kubernetes Authors.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

package fake

import (
	core_v1 "k8s.io/api/core/v1"
	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	labels "k8s.io/apimachinery/pkg/labels"
	schema "k8s.io/apimachinery/pkg/runtime/schema"
	types "k8s.io/apimachinery/pkg/types"
	watch "k8s.io/apimachinery/pkg/watch"
	testing "k8s.io/client-go/testing"
)

// FakeResourceQuotas implements ResourceQuotaInterface
type FakeResourceQuotas struct {
	Fake *FakeCoreV1
	ns   string
}

var resourcequotasResource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "resourcequotas"}

var resourcequotasKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "ResourceQuota"}

// Get takes name of the resourceQuota, and returns the corresponding resourceQuota object, and an error if there is any.
func (c *FakeResourceQuotas) Get(name string, options v1.GetOptions) (result *core_v1.ResourceQuota, err error) {
	obj, err := c.Fake.
		Invokes(testing.NewGetAction(resourcequotasResource, c.ns, name), &core_v1.ResourceQuota{})

	if obj == nil {
		return nil, err
	}
	return obj.(*core_v1.ResourceQuota), err
}

// List takes label and field selectors, and returns the list of ResourceQuotas that match those selectors.
func (c *FakeResourceQuotas) List(opts v1.ListOptions) (result *core_v1.ResourceQuotaList, err error) {
	obj, err := c.Fake.
		Invokes(testing.NewListAction(resourcequotasResource, resourcequotasKind, c.ns, opts), &core_v1.ResourceQuotaList{})

	if obj == nil {
		return nil, err
	}

	label, _, _ := testing.ExtractFromListOptions(opts)
	if label == nil {
		label = labels.Everything()
	}
	list := &core_v1.ResourceQuotaList{}
	for _, item := range obj.(*core_v1.ResourceQuotaList).Items {
		if label.Matches(labels.Set(item.Labels)) {
			list.Items = append(list.Items, item)
		}
	}
	return list, err
}

// Watch returns a watch.Interface that watches the requested resourceQuotas.
func (c *FakeResourceQuotas) Watch(opts v1.ListOptions) (watch.Interface, error) {
	return c.Fake.
		InvokesWatch(testing.NewWatchAction(resourcequotasResource, c.ns, opts))

}

// Create takes the representation of a resourceQuota and creates it.  Returns the server's representation of the resourceQuota, and an error, if there is any.
func (c *FakeResourceQuotas) Create(resourceQuota *core_v1.ResourceQuota) (result *core_v1.ResourceQuota, err error) {
	obj, err := c.Fake.
		Invokes(testing.NewCreateAction(resourcequotasResource, c.ns, resourceQuota), &core_v1.ResourceQuota{})

	if obj == nil {
		return nil, err
	}
	return obj.(*core_v1.ResourceQuota), err
}

// Update takes the representation of a resourceQuota and updates it. Returns the server's representation of the resourceQuota, and an error, if there is any.
func (c *FakeResourceQuotas) Update(resourceQuota *core_v1.ResourceQuota) (result *core_v1.ResourceQuota, err error) {
	obj, err := c.Fake.
		Invokes(testing.NewUpdateAction(resourcequotasResource, c.ns, resourceQuota), &core_v1.ResourceQuota{})

	if obj == nil {
		return nil, err
	}
	return obj.(*core_v1.ResourceQuota), err
}

// UpdateStatus was generated because the type contains a Status member.
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
func (c *FakeResourceQuotas) UpdateStatus(resourceQuota *core_v1.ResourceQuota) (*core_v1.ResourceQuota, error) {
	obj, err := c.Fake.
		Invokes(testing.NewUpdateSubresourceAction(resourcequotasResource, "status", c.ns, resourceQuota), &core_v1.ResourceQuota{})

	if obj == nil {
		return nil, err
	}
	return obj.(*core_v1.ResourceQuota), err
}

// Delete takes name of the resourceQuota and deletes it. Returns an error if one occurs.
func (c *FakeResourceQuotas) Delete(name string, options *v1.DeleteOptions) error {
	_, err := c.Fake.
		Invokes(testing.NewDeleteAction(resourcequotasResource, c.ns, name), &core_v1.ResourceQuota{})

	return err
}

// DeleteCollection deletes a collection of objects.
func (c *FakeResourceQuotas) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
	action := testing.NewDeleteCollectionAction(resourcequotasResource, c.ns, listOptions)

	_, err := c.Fake.Invokes(action, &core_v1.ResourceQuotaList{})
	return err
}

// Patch applies the patch and returns the patched resourceQuota.
func (c *FakeResourceQuotas) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.ResourceQuota, err error) {
	obj, err := c.Fake.
		Invokes(testing.NewPatchSubresourceAction(resourcequotasResource, c.ns, name, data, subresources...), &core_v1.ResourceQuota{})

	if obj == nil {
		return nil, err
	}
	return obj.(*core_v1.ResourceQuota), err
}

{'repo_name': 'checkr/codeflow', 'stars': '188', 'repo_language': 'Go', 'file_name': 'interface.go', 'mime_type': 'text/x-c', 'hash': -6284537609130877840, 'source_dataset': 'data'}


/*
 * Copyright 2000-2012 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.intellij.openapi.keymap.impl;

import com.intellij.openapi.keymap.Keymap;
import com.intellij.openapi.keymap.KeymapManagerListener;
import com.intellij.openapi.keymap.ex.KeymapManagerEx;
import javax.annotation.Nonnull;

import java.lang.ref.Reference;
import java.lang.ref.WeakReference;

class WeakKeymapManagerListener implements KeymapManagerListener {
  private final KeymapManagerEx myKeymapManager;
  private final Reference<KeymapManagerListener> myRef;

  WeakKeymapManagerListener(@Nonnull KeymapManagerEx keymapManager, @Nonnull KeymapManagerListener delegate) {
    myKeymapManager = keymapManager;
    myRef = new WeakReference<KeymapManagerListener>(delegate);
  }

  public boolean isDead() {
    return myRef.get() == null;
  }

  public boolean isWrapped(@Nonnull KeymapManagerListener listener) {
    return myRef.get() == listener;
  }

  @Override
  public void activeKeymapChanged(Keymap keymap) {
    KeymapManagerListener delegate = myRef.get();
    if (delegate == null) {
      myKeymapManager.removeKeymapManagerListener(this);
    }
    else {
      delegate.activeKeymapChanged(keymap);
    }
  }
}

{'repo_name': 'consulo/consulo', 'stars': '603', 'repo_language': 'Java', 'file_name': 'UIController.java', 'mime_type': 'text/x-java', 'hash': 5611628488320602155, 'source_dataset': 'data'}


<?php

return [
    '"Remember me" cookie expiration time, in seconds, for administration users' => '"Pamätaj si ma" cookie čas vypršania, v sekundách, pre adminov',
    '"Remember me" cookie expiration time, in seconds, for customer users' => '"Pamätaj si ma" cookie čas vypršania, v sekundách, pre zákazníkov',
    '"Remember me" cookie name for administration users' => '"Pamätaj si ma" cookie meno pre adminov',
    '"Remember me" cookie name for customer users' => '"Pamätaj si ma" cookie meno pre zákazníckych užívateľov',
    '72h delivery' => 'dodanie do 72hodín',
    'A {config key="store_name"} account has been created for you' => '{kľúč config = "store_name"} účet bol vytvorený pre vás',
    'API Configuration' => 'API konfigurácia',
    'Aceh' => 'Aceh',
    'Address' => 'Adresa',
    'Address creation - CSS stylesheet' => 'Vytvorenie adresy - CSS štýlov',
    'Address update - at the bottom' => 'Aktualizovať adresu - naspodku',
    'Address update - at the bottom of the form' => 'Aktualizovať adresu - v spodnej časti formulára',
    'Address update - at the top' => 'Adresa update - hore',
    'Administatros list' => 'Zoznam administrátorov',
    'Administrator - create form' => 'Administrátor - vytvorenie formulára',
    'Administrator - delete form' => 'Správca - Vymazať formulár',
    'Administrator list' => 'Zoznam administrátorov',
    'Administrators - JavaScript' => 'Správcovia - JavaScript',
    'Administrators - at the top' => 'Správcovia - hore',
    'Administrators - bottom' => 'Správcovia - spodné',
    'Administrators - header' => 'Správcovia - hlavička',
    'Advanced Configuration' => 'Pokročilá konfigurácia',
    'Advanced Configuration - Javascript' => 'Pokročilá konfigurácia - Javascript',
    'Advanced configuration' => 'Pokročilá konfigurácia',
    'Afghanistan' => 'Afganistan',
    'Agrigento' => 'Agrigento',
    'Aguascalientes' => 'Aguascalientes',
    'Aichi' => 'Aiči',
    'Akita' => 'Akita',
    'Alabama' => 'Alabama',
    'Alaska' => 'Aljaška',
    'Albania' => 'Albánsko',
    'Alberta' => 'Alberta',
    'Alessandria' => 'Alessandria',
    'Algeria' => 'Alžírsko',
    'All Products - CSS stylesheet' => 'Všetky produkty - CSS štýlov',
    'All Products - at the bottom' => 'Všetky produkty - na spodu',
    'All Products - at the top' => 'Všetky produkty - hore',
    'Allow an administrator to recreate a lost password (1 = yes, 0 = no)' => 'Povoliť správcom obnoviť stratené heslo (1 = áno, 0 = nie)',
    'Allow customers to change their email. 1 for yes, 0 for no' => 'Umožniť zákazníkom zmeniť ich e-mail. 1 áno, 0 pre nie',
    'An image carousel on your home page' => 'Kolotočový obrázok na vašu hlavnú stránku',
    'Ancona' => 'Ancona',
    'Andorra' => 'Andorra',
    'Aomori' => 'Aomori',
    'Aosta' => 'Aosta',
    'Arezzo' => 'Arezzo',
    'Arizona' => 'Arizona',
    'Arkansas' => 'Arkansas',
    'Ascoli Piceno' => 'Ascoli Piceno',
    'Asti' => 'Asti',
    'Attribut - create form' => 'Attribut - vytvoriť formulár',
    'Attribut - delete form' => 'Attribut - Vymazať formulár',
    'Attribut - id delete form' => 'Attribut - id Vymazať formulár',
    'Attribute value - create form' => 'Atribút hodnoty - vytvorenie formulára',
    'Australia' => 'Austrália',
    'Austria' => 'Rakúsko',
    'Avellino' => 'Avellino',
    'Azerbaijan' => 'Azerbajdžan',
    'Back-office export management' => 'Riadenie vývozov back-office',
    'Back-office home page' => 'Back-office – Domovská stránka',
    'Bahamas' => 'Bahamy',
    'Bahrain' => 'Bahrajn',
    'Baht' => 'Baht',
    'Baja California' => 'Baja California',
    'Baja California Sur' => 'Baja California Sur',
    'Bali' => 'Bali',
    'Bangka' => 'Bangka',
    'Bangladesh' => 'Bangladéš',
    'Banten' => 'Banten',
    'Barbados' => 'Barbados',
    'Bari' => 'Bari',
    'Barletta-Andria-Trani' => 'Barletta-Andria-Trani',
    'Belarus' => 'Bielorusko',
    'Belarusian ruble' => 'Bieloruský rubeľ',
    'Belgium' => 'Belgicko',
    'Belize' => 'Belize',
    'Belluno' => 'Belluno',
    'Benevento' => 'Benevento',
    'Bengkulu' => 'Bengkulu',
    'Benin' => 'Benin',
    'Bergamo' => 'Bergamo',
    'Bhutan' => 'Bhután',
    'Biella' => 'Biella',
    'Bielorussia' => 'Bielorusko',
    'Bolivia' => 'Bolívia',
    'Boliviano' => 'Bolívijské Boliviano',
    'Bologna' => 'Bologna',
    'Bolzano' => 'Bolzano',
    'Bolívar fuerte' => 'Bolivar fuerte',
    'Bosnia and Herzegovina' => 'Bosna a Hercegovina',
    'Botswana' => 'Botswana',
    'Brand - Edit JavaScript' => 'Značka - upraviť JavaScript',
    'Brand - JavaScript' => 'Značka - JavaScript',
    'Brand - content' => 'Značka - obsah',
    'Brand - create form' => 'Značka - vytvoriť formulár',
    'Brand - delete form' => 'Značka - Vymazať formulár',
    'Brand edit - right column bottom' => 'Upraviť značky - dolnej časti pravého stĺpca',
    'Brand edit - right column top' => 'Upraviť značky - pravý stĺpec hore',
    'Brescia' => 'Brescia',
    'Brindisi' => 'Brindisi',
    'British Columbia' => 'Britská Kolumbia',
    'Brunei' => 'Brunej',
    'Buenos Aires' => 'Buenos Aires',
    'Bulgaria' => 'Bulharsko',
    'Burkina' => 'Burkina',
    'Burma' => 'Barma',
    'Burundi' => 'Burundi',
    'Cagliari' => 'Cagliari',
    'California' => 'Kalifornia',
    'Caltanissetta' => 'Caltanissetta',
    'Cambodia' => 'Kambodža',
    'Cameroon' => 'Kamerun',
    'Campeche' => 'Campeche',
    'Campobasso' => 'Campobasso',
    'Canada' => 'Kanada',
    'Canceled' => 'Zrušené',
    'Cape Verde' => 'Kapverdy',
    'Carbonia-Iglesias' => 'Athina-Iglesias',
    'Cart - CSS stylesheet' => 'Nákupný košík - CSS štýlov',
    'Cart - after javascript include' => 'Nákupný košík - po javascript obsahovať',
    'Cart - at the bottom' => 'Nákupný košík - na dne',
    'Cart - at the top' => 'Nákupný košík - hore',
    'Cart - javascript initialization' => 'Nákupný košík - javascript Inicializácia',
    'Cart block' => 'Blok košík',
    'Caserta' => 'Caserta',
    'Catamarca' => 'Catamarca',
    'Catania' => 'Catania',
    'Catanzaro' => 'Catanzaro',
    'Categories - JavaScript' => 'Kategórie - JavaScript',
    'Categories - at the bottom of the catalog' => 'Kategórie - v spodnej časti katalógu',
    'Categories - at the top' => 'Kategórie - v hornej časti',
    'Categories - bottom' => 'Kategórie - spodné',
    'Categories - caption' => 'Kategórie - Popis',
    'Categories - header' => 'Kategórie - hlavička',
    'Categories - row' => 'Kategórie - riadok',
    'Category' => 'Kategória',
    'Category - Edit JavaScript' => 'Kategória - upraviť JavaScript',
    'Category - content' => 'Kategória - obsah',
    'Category - create form' => 'Kategória - vytvoriť formulár',
    'Category - delete form' => 'Kategória - Vymazať formulár',
    'Category edit - right column bottom' => 'Upraviť kategóriu - dolnej časti pravého stĺpca',
    'Category edit - right column top' => 'Upraviť kategóriu - pravý stĺpec hore',
    'Central African Republic' => 'Stredoafrická republika',
    'Central Java' => 'Centrálna Java',
    'Central Kalimantan' => 'Centrálnej Kalimantan',
    'Central Sulawesi' => 'Centrálnej Sulawesi',
    'Chaco' => 'Chaco',
    'Chad' => 'Čad',
    'Change password - CSS stylesheet' => 'Zmena hesla - CSS štýlov',
    'Change password - at the bottom' => 'Zmena hesla - na dne',
    'Change password - at the top' => 'Zmena hesla - hore',
    'Chiapas' => 'Chiapas',
    'Chiba' => 'Chiba',
    'Chieti' => 'Chieti',
    'Chihuahua' => 'Čivava',
    'Chile' => 'Čile',
    'China' => 'Čína',
    'Chubut' => 'Chubut',
    'Ciudad de Buenos Aires' => 'Ciudad de Buenos Aires',
    'Coahuila' => 'Coahuila',
    'Colima' => 'Colima',
    'Colombia' => 'Kolumbia',
    'Colorado' => 'Colorado',
    'Colón' => 'Colón',
    'Configuration' => 'Konfigurácia',
    'Configuration - JavaScript' => 'Konfigurácia - JavaScript',
    'Configuration - at the bottom of the catalog' => 'Konfigurácia - v spodnej časti katalógu',
    'Configuration - at the bottom of the shipping area' => 'Konfigurácia - v dolnej časti oblasti pre odoslanie',
    'Configuration - at the bottom of the system area' => 'Konfigurácia - v spodnej časti oblasti systému',
    'Configuration / Module' => 'Konfigurácia / modul',
    'Configuration / Profile' => 'Nastavenia / profil',
    'Configuration / Shipping-zone' => 'Konfigurácia / zóna doručenia',
    'Configuration / System Log' => 'Konfigurácia / systém Log',
    'Configuration / Tax' => 'Konfigurácia / daň',
    'Congo' => 'Kongo',
    'Connecticut' => 'Connecticut',
    'Content' => 'Obsah',
    'Content - create form' => 'Obsah - vytvoriť formulár',
    'Content - delete form' => 'Obsah - Vymazať formulár',
    'Content edit - right column bottom' => 'Upraviť obsah - dolnej časti pravého stĺpca',
    'Content edit - right column top' => 'Upraviť obsah - pravý stĺpec hore',
    'Corrientes' => 'Corrientes',
    'Cosenza' => 'Cosenza',
    'Country - create form' => 'Krajina - vytvoriť formulár',
    'Country - delete form' => 'Krajina - Vymazať formulár',
    'Coupon' => 'Kupón',
    'Cremona' => 'Cremona',
    'Croatia' => 'Chorvátsko',
    'Croatian Kuna' => 'Chorvátska Kuna',
    'Crotone' => 'Crotone',
    'Cuba' => 'Kuba',
    'Cuneo' => 'Cuneo',
    'Currencies - at the top' => 'Meny - hore',
    'Currencies - bottom' => 'Meny - spodné',
    'Currencies - table header' => 'Meny - hlavička tabuľky',
    'Currencies - table row' => 'Meny - riadok tabuľky',
    'Currency - create form' => 'Mena - vytvoriť formulár',
    'Currency - delete form' => 'Mena - Vymazať formulár',
    'Customer' => 'Zákazník',
    'Customer - Edit' => 'Zákazník - upraviť',
    'Customer - address create form' => 'Zákazník – formulár vytvorenia adresy',
    'Customer - address delete form' => 'Zákazník – formulár odstránenia adresy',
    'Customer - address update form' => 'Zákazník – formulár aktualizovania adresy',
    'Customer - at the top' => 'Zákazník - hore',
    'Customer - bottom' => 'Zákazník - dole',
    'Customer - create form' => 'Zákazník - vytvoriť formulár',
    'Customer - delete form' => 'Zákazník - Vymazať formulár',
    'Cyprus' => 'Cyprus',
    'Czech Republic' => 'Česká republika',
    'Czech koruna' => 'Česká koruna',
    'Córdoba' => 'Córdoba',
    'Danish krone' => 'Dánska koruna',
    'Delaware' => 'Delaware',
    'Delivery - CSS' => 'Dodanie - CSS',
    'Dinar' => 'Dinár',
    'Displays the default blocks on the homepage of the administration' => 'Zobrazuje predvolené bloky na domovskú stránku správy',
    'District of Columbia' => 'District of Columbia',
    'Distrito Federal' => 'Distrito Federal',
    'Dollar' => 'Dolár',
    'Dollar (CAD)' => 'Dolár (CAD)',
    'Durango' => 'Durango',
    'East Nusa Tenggara' => 'East Nusa Tenggara',
    'East kalimantan' => 'East kalimantan',
    'Ehime' => 'Ehime',
    'Email html - layout - CSS' => 'Html email - usporiadanie - CSS',
    'Email html - layout - footer' => 'E-mail - štruktúra - html päta',
    'Email html - order confirmation - after address' => 'E-mail Html - potvrdenie objednávky - po adrese',
    'Email html - order confirmation - after products' => 'E-mail html - potvrdenieobjednávky - po produktoch',
    'Email html - order confirmation - before address' => 'E-mail html - potvrdenie objednávky - pred adresu',
    'Email html - order confirmation - before products' => 'E-mail html- potvrdenie objednávky - pred produkty',
    'Email html - order confirmation - delivery address' => 'E-mail Html - potvrdenie objednávky - dodacia adresa',
    'Email html - order confirmation - footer' => 'E-mail html - potvrdenie objednávky - päta',
    'Email html - order confirmation - order product' => 'E-mail html - potvrdenie objednávky -objednaný produkt',
    'Email html - order notification - after address' => 'E-mail Html - potvrdenie objednávky - po adrese',
    'Email html - order notification - after products' => 'E-mail html - potvrdenie objednávky - po produktoch',
    'Email html - order notification - before address' => 'E-mail html - potvrdenie objednávky - pred adresu',
    'Email html - order notification - before products' => 'E-mail html - potvrdenie objednávky - po produktoch',
    'Email html - order notification - delivery address' => 'E-mail Html - potvrdenie objednávky - dodacia adresa',
    'Email html - order notification - order product' => 'E-mail html - potvrdenie objednávky -objednaný produkt',
    'Email txt - order confirmation - after address' => 'E-mail txt - potvrdenie objednávky - po adrese',
    'Email txt - order confirmation - after products' => 'E-mail txt - potvrdenie objednávky - po produktov',
    'Email txt - order confirmation - before address' => 'E-mail txt - potvrdenie objednávky - pred adresu',
    'Email txt - order confirmation - before products' => 'E-mail txt - potvrdenie objednávky - pred produktami',
    'Email txt - order confirmation - delivery address' => 'E-mail txt - potvrdenie objednávky - dodacia adresa',
    'Email txt - order confirmation - order product' => 'E-mail txt - potvrdenie objednávky - objednaný produkt',
    'Email txt - order notification - after address' => 'E-mail txt - potvrdenie objednávky - po adrese',
    'Email txt - order notification - after products' => 'E-mail txt - potvrdenie objednávky - po produktoch',
    'Email txt - order notification - before address' => 'E-mail txt - potvrdenie objednávky - pred adresu',
    'Email txt - order notification - before products' => 'E-mail txt - potvrdenie objednávky - pred produktami',
    'Email txt - order notification - delivery address' => 'E-mail txt - potvrdenie objednávky - dodacia adresa',
    'Email txt - order notification - order product' => 'E-mail txt - potvrdenie objednávky -objednaný produkt',
    'Enna' => 'Enna',
    'Entre Ríos' => 'Entre Ríos',
    'Estado de México' => 'Estado de México',
    'Feature - Value create form' => 'Funkcia - hodnota vytvoriť formulár',
    'Feature - create form' => 'Charakteristika - vytvoriť formulár',
    'Feature - delete form' => 'Charakteristika - Vymazať formulár',
    'Fermo' => 'Fermo',
    'Ferrara' => 'Ferrara',
    'Firenze' => 'Firenze',
    'Florida' => 'Florida',
    'Foggia' => 'Foggia',
    'Folder' => 'Priečinok',
    'Folder - create form' => 'Zložky - vytvorenie formulára',
    'Folder - delete form' => 'Zložku - Vymazať formulár',
    'Folder edit - right column bottom' => 'Upraviť zložky - dolná časť pravého stĺpca',
    'Folder edit - right column top' => 'Upraviť zložky - pravý stĺpec hore',
    'Forint' => 'Maďarský forint',
    'Forlì-Cesena' => 'Forlì-Cesena',
    'Formosa' => 'Formosa',
    'Franc' => 'Frank',
    'French Southern Territories' => 'Francúzske južné územia',
    'Frosinone' => 'Frosinone',
    'Fukui' => 'Fukui',
    'Fukuoka' => 'Fukuoka',
    'Fukushima' => 'Fukushima',
    'Genova' => 'Genova',
    'Gifu' => 'Gifu',
    'Gorizia' => 'Gorizia',
    'Grosseto' => 'Grosseto',
    'Guanajuato' => 'Guanajuato',
    'Guaraní' => 'Guaraní',
    'Guerrero' => 'Guerrero',
    'Gunma' => 'Gunma',
    'Hawaii' => 'Havaj',
    'Invoice - After delivery module' => 'Faktúra - po dodanie modul',
    'Invoice - After payment module' => 'Faktúra - po platobný modul',
    'Invoice - CSS' => 'Faktúra - CSS',
    'Invoice - additional product information' => 'Faktúra - ďalšie informácie o produkte',
    'Invoice - after addresse area' => 'Faktúra - po Address oblasť',
    'Invoice - after product listing' => 'Faktúra - po výpis produktov',
    'Invoice - after the information area' => 'Faktúra - po informácie',
    'Invoice - after the order summary' => 'Faktúra - po súhrne objednávky',
    'Invoice - delivery address' => 'Faktúra - adresa doručenia',
    'Invoice - imprint' => 'Faktúra -pečiatka',
    'Invoice - in the header' => 'Faktúra - v hlavičke',
    'Invoice choice - at the bottom' => 'Výber faktúry - naspodku',
    'Invoice choice - at the top' => 'Výber faktúry - hore',
    'Jakarta' => 'Jakarta',
    'Kuwait' => 'Kuvajt',
    'Kyrgyzstan' => 'Kirgizsko',
    'Language - create form' => 'Jazyk - vytvoriť formulár',
    'Languages - JavaScript' => 'Jazyky - JavaScript',
    'Languages - at the top' => 'Jazyky - hore',
    'Languages - bottom' => 'Jazyky - spodné',
    'Languages - delete form' => 'Jazyky - Vymazať formulár',
    'Laos' => 'Laos',
    'Lecco' => 'Lecco',
    'Lei' => 'Lei',
    'Lev' => 'Lev',
    'Lira' => 'Líra',
    'Livorno' => 'Livorno',
    'Lodi' => 'Lodi',
    'Louisiana' => 'Louisiana',
    'Lucca' => 'Lucca',
    'Macerata' => 'Macerata',
    'Mail sent after a subscription to newsletter' => 'E-mail zaslaný po prihlásení sa na odber noviniek',
    'Mail sent to an administrator who requested a new password' => 'E-mail, ktorý je odoslaný adminovi po žiadosti o nové heslo',
    'Maine' => 'Maine',
    'Maluku' => 'Maluku',
    'Manat' => 'Turkménsky manat',
    'Manitoba' => 'Manitoba',
    'Mantova' => 'Mantova',
    'Maryland' => 'Maryland',
    'Massa' => 'Massa',
    'Massachusetts' => 'Massachusetts',
    'Matera' => 'Matera',
    'Medio Campidano' => 'Medio Campidano',
    'Mendoza' => 'Mendoza',
    'Messina' => 'Messina',
    'Michigan' => 'Michigan',
    'Michoacán' => 'Michoacán',
    'Mie' => 'Mie',
    'Milano' => 'Milano',
    'Mini cart' => 'Mini nákupný košík',
    'Minnesota' => 'Minnesota',
    'Misiones' => 'Misiones',
    'Mississippi' => 'Mississippi',
    'Missouri' => 'Missouri',
    'Miyagi' => 'Miyagi',
    'Miyazaki' => 'Miyazaki',
    'Modena' => 'Modena',
    'New York' => 'New York',
    'Nunavut' => 'Nunavut',
    'Nuoro' => 'Nuoro',
    'Oaxaca' => 'Oaxaca',
    'Ogliastra' => 'Ogliastra',
    'Ohio' => 'Ohio',
    'Oita' => 'Oita',
    'Okayama' => 'Okayama',
    'Okinawa' => 'Okinawa',
    'Oklahoma' => 'Oklahoma',
    'Olbia-Tempio' => 'Olbia Tempio',
    'Ontario' => 'Ontario',
    'Order' => 'Objednávka',
    'Order - cart bottom' => 'Objednávka - dno košíka',
    'Order - cart top' => 'Objednávka - košík top',
    'Order details - after delivery address' => 'Podrobnosti objednávky - po adresu doručenia',
    'Order details - after invoice address' => 'Podrobnosti objednávky - po fakturačnej adrese',
    'Oregon' => 'Oregon',
    'Oristano' => 'Oristano',
    'Osaka' => 'Osaka',
    'Padova' => 'Padova',
    'Palermo' => 'Palermo',
    'Papua' => 'Papua',
    'Parma' => 'Parma',
    'Pavia' => 'Pavia',
    'Pennsylvania' => 'Pennsylvania',
    'Perugia' => 'Perugia',
    'Pesaro-Urbino' => 'Pesaro-Urbino',
    'Potenza' => 'Potenza',
    'Pound' => 'Libra',
    'Prato' => 'Prato',
    'Prince Edward Island' => 'Ostrov princa Eduarda',
    'Product - create form' => 'Produkt - vytvoriť formulár',
    'Product - delete form' => 'Produkt - Vymazať formulár',
    'Puebla' => 'Puebla',
    'Puerto Rico' => 'Portoriko',
    'Quebec' => 'Quebec',
    'Querétaro' => 'Querétaro',
    'Quetzal' => 'Guatemalský quetzal',
    'Quintana Roo' => 'Quintana Roo',
    'Ragusa' => 'Ragusa',
    'Ravenna' => 'Ravenna',
    'Real' => 'Reálne',
    'Reggio Calabria' => 'Reggio Calabria',
    'Reggio Emilia' => 'Reggio Emilia',
    'Rhode Island' => 'Rhode Island',
    'Riau' => 'Riau',
    'Rieti' => 'Rieti',
    'Rimini' => 'Rimini',
    'Ringgit' => 'Ringgit',
    'Riyal' => 'Riál',
    'Roma' => 'Rím',
    'Rovigo' => 'Rovigo',
    'Ruble' => 'Rubeľ',
    'Rupee' => 'Rupia',
    'Rupiah' => 'Rupia',
    'Río Negro' => 'Río Negro',
    'Saga' => 'Sága',
    'Saint Barthélemy' => 'Svätý Bartolomej',
    'Saint Martin (French part)' => 'Svätý Martin (Francúzska časť)',
    'Saitama' => 'Saitama',
    'Sale - CSS stylesheet' => 'Predaj - CSS štýlov',
    'Sale - at the top' => 'Výpredaj - hore',
    'Sale - at the top of the main area' => 'Výpredaj - v hornej časti hlavnej oblasti',
    'Salerno' => 'Salerno',
    'Salta' => 'Salta',
    'San Juan' => 'San Juan',
    'San Luis' => 'San Luis',
    'San Luis Potosí' => 'San Luis Potosí',
    'Santa Cruz' => 'Santa Cruz',
    'Santa Fe' => 'Santa Fe',
    'Santiago del Estero' => 'Santiago del Estero',
    'Saskatchewan' => 'Saskatchewan',
    'Sassari' => 'Sassari',
    'Savona' => 'Savona',
    'Search' => 'Hľadať',
    'Send a confirmation email to newsletter subscribers (1 = yes, 0 = no)' => 'Poslať potvrdzovací e-mail pre záujemcov o newsletter (1 = áno, 0 = nie)',
    'Shekel' => 'Shekel',
    'Shiga' => 'Šiga',
    'Shimane' => 'Šimane',
    'Shizuoka' => 'Shizuoka',
    'Siena' => 'Siena',
    'Sinaloa' => 'Sinaloa',
    'Siracusa' => 'Siracusa',
    'Sondrio' => 'Sondrio',
    'Sonora' => 'Sonora',
    'South Carolina' => 'Južná Karolína',
    'South Dakota' => 'Južná Dakota',
    'South Kalimantan' => 'Južná Kalimantan',
    'South Sulawesi' => 'Južná Sulawesi',
    'South Sumatra' => 'Južná Sumatra',
    'Southeast Sulawesi' => 'Juhovýchodný Sulawesi',
    'Tabasco' => 'Tabasco',
    'Tamaulipas' => 'Tamaulipas',
    'Taranto' => 'Taranto',
    'Tennessee' => 'Tennessee',
    'Teramo' => 'Teramo',
    'Terni' => 'Terni',
    'Texas' => 'Texas',
    'The minimum length required for an administrator password' => 'Minimálna požadovaná dĺžka hesla administrátora',
    'Tierra del Fuego' => 'Tierra del Fuego',
    'Tlaxcala' => 'Tlaxcala',
    'Tochigi' => 'Točigi',
    'Tokushima' => 'Tokushima',
    'Tokyo' => 'Tokio',
    'Torino' => 'Torino',
    'Tottori' => 'Tottori',
    'Toyama' => 'Toyama',
    'Translations' => 'Preklady',
    'Trapani' => 'Trapani',
    'Trento' => 'Trento',
    'Treviso' => 'Treviso',
    'Trieste' => 'Trieste',
    'Tucumán' => 'Tucumán',
    'Tunisian Dinar' => 'Tuniský dinár',
    'US Virgin Islands' => 'AMERICKÉ Panenské ostrovy',
    'USA' => 'USA',
    'Udine' => 'Udine',
    'Uganda' => 'Uganda',
    'Ukraine' => 'Ukrajina',
    'United Arab Emirates' => 'Spojené Arabské Emiráty',
    'United Arab Emirates dirham' => 'Spojené Arabské Emiráty dirham',
    'Utah' => 'Utah',
    'Uzbekistan' => 'Uzbekistan',
    'Vanuatu' => 'Vanuatu',
    'Varese' => 'Varese',
    'Venezia' => 'Venezia',
    'Veracruz' => 'Veracruz',
    'Verbano-Cusio-Ossola' => 'Verbano-Cusio-Ossola',
    'Vercelli' => 'Vercelli',
    'Vermont' => 'Vermont',
    'Verona' => 'Verona',
    'Vibo Valentia' => 'Vibo Valentia',
    'Vicenza' => 'Vicenza',
    'Virginia' => 'Virginia',
    'Viterbo' => 'Viterbo',
    'Wakayama' => 'Wakayama',
    'Washington' => 'Washington',
    'West Java' => 'Západná Jáva',
    'West Kalimantan' => 'West Kalimantan',
    'West Nusa Tenggara' => 'West Nusa Tenggara',
    'West Sulawesi' => 'Západ Sulawesi',
    'West Sumatra' => 'Západná Sumatra',
    'West Virginia' => 'Západná Virgínia',
    'Western Samoa' => 'Západná Samoa',
    'Wisconsin' => 'Wisconsin',
    'Wyoming' => 'Wyoming',
    'Yamagata' => 'Yamagata',
    'Yamaguchi' => 'Yamaguchi',
    'Yamanashi' => 'Jamanaši',
    'Yemen' => 'Jemen',
    'Yen' => 'Yen',
    'Yogyakarta' => 'Yogyakarta',
    'You can now login at' => 'Teraz sa môžete prihlásiť na',
    'You have lost your password <br />\r\nPlease, change this password after your first connection' => 'Stratili ste heslo < br / > \r\n Prosím, zmeňte si heslo po prvom prihlásení',
    'You have lost your password <br />\r\nYour new password is' => 'Stratili ste heslo <br />\r\n Vaše nové heslo je',
    'Your new passord is : {$password}' => 'Nové heslo je: {$password}',
    'Your subscription to %store newsletter' => 'Odoberanie noviniek %store',
    'Yuan' => 'Yuan',
    'Yucatán' => 'Yucatán',
    'Yukon' => 'Yukon',
    'Zacatecas' => 'Zacatecas',
    'Zimbabwe' => 'Zimbabwe',
    'Złoty' => 'Złoty',
    'changing password email for' => 'zmena hesla e-mailom na',
    'customer account - CSS stylesheet' => 'zákaznícky účet - CSS štýlov',
    'customer account - after javascript initialisation' => 'zákaznícky účet - po javascript inicializáciu',
    'customer account - at the top' => 'zákaznícky účet - hore',
    'language selection page - at the top' => 'jazyk výber stránky - hore',
    'state - Edit JavaScript' => 'štát - úprava JavaScript',
    'state - creation form' => 'štát - vytvorenie formulára',
    'state - delete form' => 'štát - Vymazať formulár',
    'state-edit - at the top' => 'štát-edit - hore',
    'state-edit - bottom' => 'štát-edit - spodné',
    'states - JavaScript' => 'štáty - JavaScript',
    'states - at the top' => 'štáty - hore',
    'states - bottom' => 'štáty - spodné',
    'states - table header' => 'štáty - hlavička tabuľky',
    'states - table row' => 'štáty - riadok tabuľky',
    'Đồng' => 'Đồng',
    'Гривна' => 'ГРИВНА',
];

{'repo_name': 'thelia/thelia', 'stars': '734', 'repo_language': 'PHP', 'file_name': 'RemovePercentageOnProducts.php', 'mime_type': 'text/x-php', 'hash': 5551922398210100393, 'source_dataset': 'data'}


/*******************************************************************************
 * Copyright (c) 2000, 2011 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Originally copied from org.eclipse.search.core.text.TextSearchEngine
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.jdt.ls.core.internal.search.text;

import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;

/**
 * A {@link TextSearchEngine} searches the content of a workspace file resources
 * for matches to a given search pattern.
 *

 * {@link #create()} gives access to an instance of the search engine. By default this is the default
 * text search engine (see {@link #createDefault()}) but extensions can offer more sophisticated
 * search engine implementations.
 *

 * @since 3.2
 */
public abstract class TextSearchEngine {

	/**
	 * Creates an instance of the search engine. By default this is the default text search engine (see {@link #createDefault()}),
	 * but extensions can offer more sophisticated search engine implementations.
	 * @return the created {@link TextSearchEngine}.
	 */
	public static TextSearchEngine create() {
		return createDefault();
		//return SearchPlugin.getDefault().getTextSearchEngineRegistry().getPreferred();
	}

	/**
	 * Creates the default, built-in, text search engine that implements a brute-force search, not using
	 * any search index.
	 * Note that clients should always use the search engine provided by {@link #create()}.
	 * @return an instance of the default text search engine {@link TextSearchEngine}.
	 */
	public static TextSearchEngine createDefault() {
		return new TextSearchEngine() {
			@Override
			public IStatus search(TextSearchScope scope, TextSearchRequestor requestor, Pattern searchPattern, IProgressMonitor monitor) {
				return new TextSearchVisitor(requestor, searchPattern).search(scope, monitor);
			}

			@Override
			public IStatus search(IFile[] scope, TextSearchRequestor requestor, Pattern searchPattern, IProgressMonitor monitor) {
				 return new TextSearchVisitor(requestor, searchPattern).search(scope, monitor);
			}
		};
	}

	/**
	 * Uses a given search pattern to find matches in the content of workspace file resources. If a file is open in an editor, the
	 * editor buffer is searched.

	 * @param requestor the search requestor that gets the search results
	 * @param scope the scope defining the resources to search in
	 * 	@param searchPattern The search pattern used to find matches in the file contents.
	 * @param monitor the progress monitor to use
	 * @return the status containing information about problems in resources searched.
	 */
	public abstract IStatus search(TextSearchScope scope, TextSearchRequestor requestor, Pattern searchPattern, IProgressMonitor monitor);

	/**
	 * Uses a given search pattern to find matches in the content of workspace file resources. If a file is open in an editor, the
	 * editor buffer is searched.

	 * @param requestor the search requestor that gets the search results
	 * @param scope the files to search in
	 * 	@param searchPattern The search pattern used to find matches in the file contents.
	 * @param monitor the progress monitor to use
	 * @return the status containing information about problems in resources searched.
	 */
	public abstract IStatus search(IFile[] scope, TextSearchRequestor requestor, Pattern searchPattern, IProgressMonitor monitor);

	/**
	 * Creates a pattern for the given search string and the given options.
	 *
	 * @param pattern the search pattern. If isRegex is:
	 *

	 *
false: a string including '*' and '?' wildcards and '\' for
	 *            escaping the literals '*', '?' and '\'

	 *
true: a regex as specified by {@link Pattern} plus "\R" denoting
	 *            a line delimiter (platform independent)

	 *

	 * @param isRegex true if the given string follows the {@link Pattern} including
	 *            "\R"
	 * @param isCaseSensitive Set to true to create a case insensitive pattern
	 * @return the created pattern
	 * @throws PatternSyntaxException if "\R" is at an illegal position
	 * @see Pattern
	 * @since 3.8
	 */
	public static Pattern createPattern(String pattern, boolean isCaseSensitive, boolean isRegex) throws PatternSyntaxException {
		return PatternConstructor.createPattern(pattern, isRegex, true, isCaseSensitive, false);
	}

}

{'repo_name': 'eclipse/eclipse.jdt.ls', 'stars': '758', 'repo_language': 'Java', 'file_name': 'org.eclipse.core.resources.prefs', 'mime_type': 'text/plain', 'hash': 4147090619225576690, 'source_dataset': 'data'}