package Padre::Document::CSharp;

use 5.008;
use strict;
use warnings;
use Padre::Constant   ();
use Padre::Role::Task ();
use Padre::Document   ();

our $VERSION = '1.00';
our @ISA     = qw{
	Padre::Role::Task
	Padre::Document
};


#####################################################################
# Padre::Document Task Integration

sub task_functions {
	return 'Padre::Document::CSharp::FunctionList';
}

sub task_outline {
	return undef;
}

sub task_syntax {
	return undef;
}

sub get_function_regex {
	my $name = quotemeta $_[1];
	return qr/
	        (?:^|[^# \t-])
	        [ \t]*
		((?: (public|protected|private|
		      abstract|static|sealed|virtual|override|
		      explicit|implicit|operator|extern)\s+)
		     {0,4}             # zero to 4 method modifiers
		     (?: [\w\[\]<>,]+) # return data type
		     \s+
		     $name
   		     (?: <\w+>)?        # optional: generic type parameter
	        )
		/x;
}

1;

# Copyright 2008-2013 The Padre development team as listed in Padre.pm.
# LICENSE
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl 5 itself.